引言
上一篇笔记主要是介绍了信号的核心API,但是信号还是存在一些特征:
- 比如说信号在响应信号的过程中,有另外一个信号过来会不会发生嵌套?
- 或者多个信号进行访问,进程应该是有序响应还是丢弃呢?
- 或者进程设置信号的阻塞掩码,子进程是否会继承呢?
- 或者挂起的信号是否也会继承给子进程?
那么这篇笔记主要是解答以上几个问题。
阻塞掩码是否会被子进程继承?
代码实现:


代码运行结果:

因此结论是:子进程会继承父进程的阻塞掩码
挂起信号是否会被子进程继承?
由上一个结论可以得知:子进程会继承父进程的阻塞,因此也可以借助上一个结论来证明挂起信号是否会被继承:


代码运行结果:

如上图:只有父进程能够成功打印SIGQUIT,证明子进程没有继承挂起的信号
结论:子进程不能继承父进程挂起的信号
信号是否会相互嵌套?

如图所示,信号可以嵌套
结论:信号是会相互嵌套的,但是相同信号不会嵌套
非实时信号只会响应一次,实时信号会全部响应


总结:
- 子进程会继承父进程的阻塞掩码
- 子进程不能继承父进程挂起的信号
- 信号是会相互嵌套的,但是相同信号不会嵌套
- 非实时信号只会响应一次,实时信号会全部响应

本文深入探讨了信号处理中关键问题,包括子进程对父进程阻塞掩码和挂起信号的继承特性,信号的嵌套行为,以及非实时与实时信号的响应方式。揭示了子进程继承阻塞掩码但不继承挂起信号,信号能相互嵌套但相同信号不嵌套,非实时信号响应一次而实时信号全部响应等核心概念。
501

被折叠的 条评论
为什么被折叠?



