这篇文章从以下几个方面来了解信号
1、什么是信号
2、信号的产生
3、信号的处理
4、发送信号
5、信号处理函数安全
1、什么是信号?
信号是一种事件通知机制,当接收到该信号的进程会执行相应的操作
2、信号的产生
- 由硬件产生,如从键盘输入Ctrl+C可以终止当前进程
- 由其他进程发送,例如,在shell进程下,使用命令kill -信号值 PID
- 异常,当进程异常时发送信号
3、信号的处理
信号是由操作系统处理的,所以信号的处理在内核态。如果不是紧急信号的话,它不一定被立即处理,操作系统不会为了处理一个信号而把当前正在运行的进程挂起,因为挂起(进程切换)当前进程消耗很大。所以操作系统一般会将信号先放入信号表中,一般选择在内核态切换回用户态的时候处理信号(不用自己单独进行进程切换以免浪费时间)