#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'是一個內置的;它不能通過單獨的過程來實施。 –