cd命令文件路径在哪里以及哪个环境变量?! 我使用PATH环境变量,但我没有找到cd命令,所以我想在execv中执行cd命令,提前谢谢你,我的代码:
char * envVariable = get env("PATH");
execv(path, args);
答案 0 :(得分:0)
如果您正在对shell进行编码 - 或类似的东西,则必需让cd
成为内置,并调用chdir(2)系统调用。
当您更改任何私有的进程属性时,这是必需的。当前目录是这样的属性(由setrlimit(2)等设置限制......)
这解释了为什么你不能system("cd /tmp");
system
函数正在分支/bin/sh -c
进程,而且shell正在更改目录,而不是父进程(你的程序)。