#include<stdio.h>
#include<unistd.h>
int main()
{
char s[100];
printf("%s\n",getcwd(s,100));
chdir("..");
printf("%s\n",getcwd(s,100));
return 0;
}
输出:
$ ./a.out
/home/guest
/home
$
上述程序改变处理的工作目录。但是,它不会更改当前shell的工作目录。因为当程序在shell中执行时,shell会遵循exec机制的fork。所以,它不会影响当前的shell。
是否有 任何方式通过这些程序来改变shell的当前工作目录,就像shell使用的内置(cd,echo)命令一样?
有一个原因'CD'是一个内置的;它不能通过单独的过程来实施。 –