如何通过pid检查子进程是否在c中完成

时间:2015-11-15 00:42:30

标签: c linux shell unix

我正在用c构建一个非常小的shell,

我可以选择在后台运行程序。

我列出了我所有工作的清单,意思是bg中的所有工作。

现在,如果我想更新此列表,我如何检查流程是否已完成或是否仍在运行。

PS 如果我等待waitpid进行某个过程,我仍然可以检查过程是否已完成? (我的意思是,如果我使用waitpid,它会采取僵尸状态的过程。

1 个答案:

答案 0 :(得分:2)

您应该能够调用waitpid,向其传递进程ID和WNOHANG选项,并在通过status参数返回的整数上调用WIFEXITED宏。请参阅Just check status process in c