gpt4 book ai didi

c - 如果 execvp 失败则终止子进程

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:49 25 4
gpt4 key购买 nike

我有一个 C 程序的结构类似于:http://www.csl.mtu.edu/cs4411/www/NOTES/process/fork/exec.html (也就是说,它是一个 shell,在输入时使用 execvp 运行一个命令,并无限循环直到输入“exit”)。

如果将无法识别的命令传递给 execvp,立即终止子进程的最佳方法是什么?例如,如果我键入“ehco”而不是“echo”,我如何才能快速终止这个子进程?我注意到,如果我输入一个不在我的 PATH 中的命令,然后立即键入 exit,它不会退出,直到我稍后再次键入 exit。

最佳答案

链接示例已经做了正确的事情: child 应该在 execvp() 之后无条件地调用 _exit()execvp() 只会在失败时返回。

(换句话说,您不会从父进程中杀死子进程;您等待子进程退出,然后编写子进程以便在 exec 失败时自行杀死)。

关于c - 如果 execvp 失败则终止子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6785342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com