c ++检查子状态

时间:2012-11-20 06:11:43

标签: c++ fork

我有这样的代码:

fork();
if child:
   execvp("sth");   //Just returns if errors
if parent:
   save child pid;

在花药功能中,我想检查孩子是否完成,我不想使用waitpid。还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

您可以设置信号处理程序来处理SIGCHLD,当孩子结束时,SIGCHLD将被传递给父母。从技术上讲,这是“另一个功能”,即使它是异步调用的。即使在获得信号之后你仍然应该使用waitpid,如果你有多个孩子,这是我知道你能够区分它们的唯一方式。