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

使用exec()系列运行“cd”命令,第1张

概述我知道cd是内置的 shell,我可以使用system()运行它. 但是可以运行exec()系列的cd命令,比如execvp()吗? 编辑:我只是注意到系统(“cd”)也没有意义.谢谢大家的帮助. exec加载可执行文件并用它替换当前程序映像.正如您所正确指出的那样,cd不是可执行文件,而是内置的shell.因此,您要运行的可执行文件是shell本身.这当然是system()为你做的,但如果你想明 我知道cd是内置的 shell,我可以使用system()运行它.

但是可以运行exec()系列的cd命令,比如execvp()吗?

编辑:我只是注意到系统(“cd”)也没有意义.谢谢大家的帮助.

解决方法 exec加载可执行文件并用它替换当前程序映像.正如您所正确指出的那样,cd不是可执行文件,而是内置的shell.因此,您要运行的可执行文件是shell本身.这当然是system()为你做的,但如果你想明确它,你可以使用exec:
execl("/bin/sh","-c","cd",(const char *)0);

由于这会替换当前的过程映像,因此应在fork()关闭新进程后执行此 *** 作.

但是,这整个过程绝对没有效果.如果要更改当前进程中的目录,请使用chdir().

总结

以上是内存溢出为你收集整理的使用exec()系列运行“cd”命令全部内容,希望文章能够帮你解决使用exec()系列运行“cd”命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1237859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存