一、信号概念
信号是事件发生时对进程的通知机制,也可以把它称为软件中断。信号与硬件中断的相似之处在于能够 打断程序当前执行的正常流程,其实是在软件层次上对中断机制的一种模拟。大多数情况下,是无法预测信号达到的准确时间,所以,信号提供了一种处理异步事件的方法。
总的来看,信号的目的都是用于通信的,当发生某种情况 下,通过信号将情况“告知”相应的进程,从而达到同步、通信的目的。
信号由谁处理、怎么处理
信号由谁接收就由谁处理,当信号到达后,进程会对信号进行相应的处理,处理方式有3种。
1)忽略该信号 2)捕获信号,进程收到信号后执行预先绑定好的信号处理函数
3)执行系统默认处理函数,进程不处理,而是交给系统。
信号本质上是 int 类型数字编号
信号本质上是int类型的数字编号,内核针对每个信号都分配了一个编号,从1开始,与之一一对应的有名字也就是宏定义,因为不同系统可能对应的数字编号不同,所以一般使用信号的宏定义。