当一个进程子进程终止时,他正在向SIGCHLD
父进程发送一个。现在,如果父进程有多个子进程,父进程如何知道哪个子进程发送了信号?
问问题
1413 次
2 回答
2
系统wait()
调用返回pid
终止的孩子的。您可以调用wait()
您的SIGCHLD
处理程序来确定哪个孩子终止了。
从手册页:
wait(): on success, returns the process ID of the terminated child;
on error, -1 is returned.
于 2013-11-06T13:26:10.887 回答
1
除了@shanet's answerwait()
中的调用系列之外,SIGCHLD 本身还携带该信息。
传递给三参数信号处理程序 ( SA_SIGINFO )的si_pid
成员的成员包含孩子的 PID。siginfo_t
于 2013-11-06T13:30:30.500 回答