我正在研究信号并浏览此链接
https://en.wikipedia.org/wiki/Child_process#cite_note-1
这就是它所说的:“当子进程退出、被中断或被中断后恢复时,SIGCHLD 信号被发送到子进程的父进程。默认情况下,信号被简单地忽略”
我们忽略 SIGCHLD 有什么原因吗?
最佳答案
尝试生 child ,您就会明白为什么有时您必须忽略 SIGCHLD
来保持理智 :)。
撇开玩笑不谈,该声明的全部意思是 POSIX 系统没有为 SIGCHLD 定义默认信号行为,除了忽略它之外。将此与 SIGINT
、SIGTERM
等进行比较,其中默认行为可能是终止进程。
有关所有信号、所有默认处理程序以及信号->默认处理程序的映射的列表,请参阅 linux 上的 man 7 signal
。
通常忽略 SIGCHLD 是有意义的,因为您可以从 waitpid
知道您需要知道的一切。
关于c - 为什么我们通常忽略SIGCHLD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32631733/