如何在linux中使用execv()和cd命令?

时间:2014-10-31 14:41:18

标签: c linux environment-variables cd execv

cd命令文件路径在哪里以及哪个环境变量?! 我使用PATH环境变量,但我没有找到cd命令,所以我想在execv中执行cd命令,提前谢谢你,我的代码:

char * envVariable = get env("PATH");
execv(path, args);

1 个答案:

答案 0 :(得分:0)

如果您正在对shell进行编码 - 或类似的东西,则必需cd成为内置,并调用chdir(2)系统调用。

当您更改任何私有的进程属性时,这是必需的。当前目录是这样的属性(由setrlimit(2)等设置限制......)

这解释了为什么你不能system("cd /tmp"); system函数正在分支/bin/sh -c进程,而且shell正在更改目录,而不是父进程(你的程序)。

阅读fork(2)execve(2)Advanced Linux Programming

相关问题