为什么我们通常会忽略 SIGCHLD

pan*_*aha 0 c signals sigchld

我正在研究信号并浏览此链接

https://en.wikipedia.org/wiki/Child_process#cite_note-1

这就是它所说的:“SIGCHLD 信号在子进程退出、被中断或被中断后恢复时被发送到它的父进程。默认情况下,该信号被简单地忽略”

我们有什么理由忽略 SIGCHLD。

Bri*_*and 5

尝试生孩子,你就会明白为什么有时你不得不忽视SIGCHLD以保持你的理智:)。

撇开笑话不谈,所有这些声明意味着 POSIX 系统没有为 SIGCHLD 定义默认信号行为,除了忽略它。将此与SIGINTSIGTERM等,其中默认行为可能是终止进程。

有关man 7 signal所有信号、所有默认处理程序以及信号->默认处理程序的映射的列表,请参阅linux。

通常忽略 SIGCHLD 是有意义的,因为您可以从waitpid.