如何检测子进程已崩溃?

时间:2015-12-17 15:52:52

标签: c linux

子进程可以:

  • 正常退出(退出使用exit(0)exit(22)exit(23)) - 这显然是针对我的应用
  • 异常退出(代码抛出异常,接收未处理的信号,核心转储等...)

我正在从父进程执行fork / exec并在waitpid上循环,当我检测到子进程已退出时,我想确定它退出的原因。

目前,我检查WEXITSTATUS(status)waitpid返回status)以确定退出代码。

有没有办法可靠地检测孩子是否异常退出?

1 个答案:

答案 0 :(得分:4)

您可以查看WIFSIGNALED(status)。如需测试,请查看Test cases in C for WIFSIGNALED, WIFSTOPPED, WIFCONTINUED

当然,您也可以使用WIFEXITED(status)对正常终止进行肯定检查。