如果我安装了 SIGCHLD 处理程序,特定 pid 上的*阻塞*等待是否仍然有效



我有一些东西使用一堆异步分叉来完成它的工作(在工具包下)。

在特定的代码区域中,我正在分叉,然后在子进程上执行阻塞等待。

SIGCHLD 处理程序是否会在阻塞等待看到信号之前吞噬信号,让我可能挂起,还是等待总是会得到一些东西?

SIGCHLD处理程序在退出的子进程的事件(边缘)上触发。对waitpid()的阻止调用将等待该特定子进程的条件(级别)不再存在。

当进程退出时,将传递一个SIGCHLD,并且其处理程序将正常执行。如果该进程存在waitpid()阻塞,则无论是否存在信号处理程序,它都将正常返回。

最新更新