【发布时间】:2016-07-26 00:13:17
【问题描述】:
是否可以使用 fork 命令更改目录?无需过多介绍我的代码,我有以下内容:
childpid = fork();
if (childpid >= 0)
{
if (childpid == 0)
{
ret = execvp(argv[0],argv);
exit(ret);
} else {
waitpid(childpid,&status,0);
ret = WEXITSTATUS(status);
}
}
当我输入ls、pwd 等基本命令时,上述工作正常。是否可以实现一种使用 cd 功能的方法?我可以输入命令cd ..,但它什么也没做。
例如,如果我的程序在/Users/username/Desktop/ 中,我想使用诸如cd .. 之类的命令进入/Users/username/ 或者能够直接进入/Users
我看过一些关于 chdir 的资料,但我不确定它是如何工作的/如何使用它。
【问题讨论】:
-
当前目录特定于每个进程。所以你的shell进程在/Users/username/Desktop中,你输入
cd ..,这会创建一个新进程,新进程更改为/Users/username,但是shell进程没有,因为它是一个不同的进程从改变目录的那个。
标签: c linux directory fork chdir