C++ 检查子状态

c++ check Child status

本文关键字:状态 检查 C++      更新时间:2023-10-16

我有这样的代码:

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

在另一个函数中,我想检查孩子是否完成,但我不想使用waitpid。还有其他方法可以做到这一点吗?

您可以设置一个信号处理程序来处理 SIGCHLD,该处理程序将在子级结束时传递给父级。 从技术上讲,这是"另一个函数",即使它是异步调用的。 即使在收到信号后,您仍然应该使用waitpid,如果您有多个孩子,这是我知道您能够区分它们的唯一方法。