今天在敲代码的时候,发现一些小问题,各种资料各种查,未果。在这里贴出来希望路过的大神指点一二。
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,还是没能行的通。。
不知道 是代码错了还是哪里有问题了。。
请 路过的大神指点一二,万分感谢。。