今天在敲代码的时候,发现一些小问题,各种资料各种查,未果。在这里贴出来希望路过的大神指点一二。
1 #include<stdio.h> 2 #include<fcntl.h> 3 #include<sys/stat.h> 4 #include<sys/types.h> 5 #include<unistd.h> 6 #include<stdlib.h> 7 #define SIZE 30 8 int main(void) 9 { 10 const char *newpath; 11 char pn[SIZE]; 12 char buf[SIZE]; 13 puts("Please input the new pathname,[<30srrings]:"); 14 gets(pn); 15 newpath=pn; 16 if(chdir(newpath)==-1) /*调用chdir函数改变当前工作路径*/ 17 { 18 puts("Error! change directory failed!"); 19 exit(1); /*出错退出*/ 20 } 21 puts("OK! change directory success!"); 22 if(getcwd(buf,SIZE)==NULL) /*调用getcwd函数获取当前工作路径*/ 23 { 24 puts("Error! getcwd failed!"); 25 exit(1); 26 } 27 printf("cwd=%s\n",buf); 28 return 0; 29 }
源代码如上,运行的结果是这样的:
程序运行之后明明提示改变目录成功,但是执行pwd的时候,当前的工作路径还是没有改变。书上输入的路径是/root,我试了一下,说是没有权限,我又改成超级用户,结果和图上一样。
我又 新建了一个用户,在新用户目录下test,还是没能行的通。。
不知道 是代码错了还是哪里有问题了。。
请 路过的大神指点一二,万分感谢。。