Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过pid检查子进程是否在c中完成_C_Linux_Shell_Unix - Fatal编程技术网

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

如何通过pid检查子进程是否在c中完成,c,linux,shell,unix,C,Linux,Shell,Unix,我正在用c构建一个非常小的外壳 我可以选择在后台运行程序 我保留了一份我所有工作的清单,也就是说bg中的所有工作 现在,如果我想去更新这个列表,我如何检查一个进程是否已经完成或者它是否仍在运行 ps 如果我与waitpid一起等待某个进程,我是否仍然能够检查该进程是否已完成?(我的意思是,如果我使用waitpid,它将进入僵尸状态的进程。你应该能够调用waitpid,向它传递进程id和WNOHANG选项,并对通过status参数返回的整数调用WIFEXITED宏。请参阅。我认为你应该发布你的代码

我正在用c构建一个非常小的外壳

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

我保留了一份我所有工作的清单,也就是说bg中的所有工作

现在,如果我想去更新这个列表,我如何检查一个进程是否已经完成或者它是否仍在运行

ps
如果我与waitpid一起等待某个进程,我是否仍然能够检查该进程是否已完成?(我的意思是,如果我使用waitpid,它将进入僵尸状态的进程。

你应该能够调用
waitpid
,向它传递进程id和
WNOHANG
选项,并对通过status参数返回的整数调用
WIFEXITED
宏。请参阅。

我认为你应该发布你的代码。我不明白你需要什么。可能重复Arthur,虽然答案是正确的,但它完全基于您在答案中引用的答案。当您发现出现这种情况时,最好将此问题标记为您引用的问题的副本。这样可以将有关特定主题的所有问题/答案收集在一个地方,并有助于防止出现这种情况ng无望地支离破碎。若要将此问题标记为另一个问题的副本,只需选择原始问题下方的“关闭”选项,然后输入原始问题的URL即可。