Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个由pid. 这个过程可能是:
pid
我想终止这个进程并确保没有僵尸残留。目前我的代码是
kill(pid, SIGKILL); int temp; waitpid(pid, &temp, 0);
这行得通吗?
编辑: 指定的进程pid是我的程序的子进程。
到目前为止这看起来不错,但我想知道为什么你会让案例 3 发生。您应该执行一些簿记,您的哪些子进程已终止并等待收获。一种方法是为 安装一个处理程序SIGCHLD,设置一个标志 awaitpid是有序的。这样你就可以保证所有的 pid 实际上都是你的子进程的。
SIGCHLD
waitpid
应该可以正常工作,但一定要检查 waitpid 的返回值。由于信号,呼叫可能已返回。