我有pid
指定的子进程。这个过程可能是:
我想杀死这个过程并确保没有僵尸。目前我的代码是
kill(pid, SIGKILL);
int temp;
waitpid(pid, &temp, 0);
这会有用吗?
编辑:pid
指定的进程是我程序的子进程。
答案 0 :(得分:2)
应该可以正常工作,但一定要检查waitpid的returnvalue。 由于信号,该呼叫可能已经返回。
答案 1 :(得分:2)
到目前为止看起来很好,但我想知道为什么你会让案例3发生。您应该执行一些簿记,您的子进程已终止并等待收到。
一种方法是为SIGCHLD
安装处理程序,设置waitpid
按顺序排列的标记。这样您就可以保证所有的pid实际上都是您子进程的那些。