我正在用c构建一个非常小的shell,
我可以选择在后台运行程序。
我列出了我所有工作的清单,意思是bg中的所有工作。
现在,如果我想更新此列表,我如何检查流程是否已完成或是否仍在运行。
PS 如果我等待waitpid进行某个过程,我仍然可以检查过程是否已完成? (我的意思是,如果我使用waitpid,它会采取僵尸状态的过程。
答案 0 :(得分:2)
您应该能够调用waitpid
,向其传递进程ID和WNOHANG
选项,并在通过status参数返回的整数上调用WIFEXITED
宏。请参阅Just check status process in c。