【发布时间】:2020-02-18 00:42:06
【问题描述】:
我的程序上有一个 SIGCHLD 处理程序,它可以获取僵尸进程。
如何避免在执行多个 fork() 调用和 waitpid() 调用的部分代码中调用 SIGCHLD 处理程序?
因为现在,当我进行 fork() 调用并且孩子完成他的执行时,它返回一个 SIGCHLD 信号,因此它调用 SIGCHLD 处理程序,但我想在代码的那部分而不是在处理程序?
我该怎么做?阻塞 SIGCHLD 信号?
【问题讨论】:
-
您是否尝试过阻止它并查看是否按您想要的方式工作?
-
如果您想要默认行为,请在您不希望信号处理程序处理 SIGCHLD 时恢复 SIG_DFL 处理。