子进程可以:
exit(0)
,exit(22)
,exit(23)
) - 这显然是针对我的应用我正在从父进程执行fork / exec并在waitpid
上循环,当我检测到子进程已退出时,我想确定它退出的原因。
目前,我检查WEXITSTATUS(status)
(waitpid
返回status
)以确定退出代码。
有没有办法可靠地检测孩子是否异常退出?
答案 0 :(得分:4)
您可以查看WIFSIGNALED(status)
。如需测试,请查看Test cases in C for WIFSIGNALED, WIFSTOPPED, WIFCONTINUED。
当然,您也可以使用WIFEXITED(status)
对正常终止进行肯定检查。