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.
我有一些东西使用一堆异步分叉来完成它的工作(在一个工具包下面)。
在特定的代码区域中,我正在分叉,然后对子进程进行阻塞等待。
SIGCHLD 处理程序是否会在阻塞等待看到它之前吞噬信号,让我可能挂起,或者等待总是会得到一些东西?
处理程序在SIGCHLD子进程退出的事件(边缘)上被触发。阻塞调用waitpid()将等待该特定子进程的条件(级别)不再存在。
SIGCHLD
waitpid()
当进程退出时,aSIGCHLD将被传递,其处理程序将正常执行。如果该进程发生waitpid()阻塞,则无论是否存在信号处理程序,它都会正常返回。