前端之家收集整理的这篇文章主要介绍了
使用exec()系列运行“cd”命令,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道cd是内置的
shell,我可以使用system()运行它.
但是可以运行exec()系列的cd命令,比如execvp()吗?
编辑:我只是注意到系统(“cd”)也没有意义.谢谢大家的帮助.
exec加载可执行
文件并用它替换当前程序映像.正如您所正确指出的那样,cd不是可执行
文件,而是内置的shell.因此,您要运行的可执行
文件是shell本身.这当然是system()为你做的,但如果你想明确它,你可以使用exec:
execl("/bin/sh","-c","cd",(const char *)0);
由于这会替换当前的过程映像,因此应在fork()关闭新进程后执行此操作.
但是,这整个过程绝对没有效果.如果要更改当前进程中的目录,请使用chdir().
原文链接:https://www.f2er.com/c/117598.html