使用exec()系列运行“ cd”命令
我知道这cd
是内置的shell,我可以使用运行它system()
。
但这有可能cd
由exec()
家人来执行命令execvp()
吗?
编辑:我只是注意到这system("cd")
也是没有意义的。感谢大家的帮助。
回答:
exec
加载 可执行文件 并用它替换当前程序映像。正如您正确指出的那样,cd
它 不是
可执行文件,而是内置的shell。因此,您要运行的可执行文件是外壳本身。当然,system()
这对您有帮助,但是如果您想对其进行明确说明,则可以使用exec
:
execl("/bin/sh", "-c", "cd", (const char *)0);
由于这 将替换 您当前的过程映像,因此您应该在执行fork()
新过程后执行此操作。
但是,整个过程绝对无效。如果要在当前进程中更改目录,请使用chdir()
。
以上是 使用exec()系列运行“ cd”命令 的全部内容, 来源链接: utcz.com/qa/426934.html