C语言中的 linux 信号

来源:互联网 发布:qt程序员常用单词 编辑:程序博客网 时间:2024/05/29 07:32

定义


信号是一种软件中断。

产生:用户/硬件/程序都可以产生信号
处理:不管/自定义signal函数/默认
缺陷:开销大/数量有限/传递信息有限

跟汽车的应急灯差不多。哈哈。

一个 ctrl+c 的执行流程


1 当按下 ctrl+c ,此刻 键盘 产生 硬件中断。
2 cpu 从用户态 切换到 内核态,处理硬件中断。
3 驱动程序 将 ctrl+c 翻译成为 SIGINT 信号,记录到当前进程中的 PCB 中
4 当恢复到用户态的时候,程序首先检查 PCB, 发现 SIGINT 信号,终止程序,不去执行用户代码。