使用exec()系列运行“cd”命令

前端之家收集整理的这篇文章主要介绍了使用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().

猜你在找的C&C++相关文章