【发布时间】:2011-09-25 16:16:36
【问题描述】:
我使用fork() 和exec*() 制作了一个程序。问题是我无法从父进程中确定exec() 的成功或失败,因为它位于分离的子进程中。我认为可以使用某种信号来检查这种状态,但我对此一无所知。
- 推荐/标准/广泛使用的检查方法是什么?
- 在执行此操作时我必须注意哪些陷阱?
问题详情更新(抱歉遗漏了重要细节)
我想保持两个进程都在运行,所以我不能只是等待子进程退出。换句话说,我想收到有关子进程'exec成功或失败的通知。
【问题讨论】:
-
您知道您可以使用
waitpid和WNOHANG选项在不阻塞的情况下查询子状态吗?根据您的系统,您可能还拥有wait3和wait4,它们也理解此标志。或者你想在保持孩子运行的同时向父母发出信号(比如使用 IPC 信号量)? -
@DarkDust 我想保持两个进程都在运行,并且我想通知子进程'
exec状态。 (成功或失败)哦,你解决了我的问题。谢谢:)