1 信号简介
信号的基本概念: 软件模拟中断,进程接受信号后做出相应响应
怎么产生信号?
- 硬件
- 执行非法指令
- 访问非法内存
- 驱动程序
- …
- 软件
- 控制台:
- ctrl+c:中断信号
- ctrl+|:退出信号
- ctrl+z:停止信号
- kill命令
- 程序调用kill()函数
- 控制台:
信号的处理方式:
- 忽略:进程当信号从来没有发生过
- 捕获:进程会调用相应的处理函数,进行相应的处理
- 默认:使用系统默认处理方式来处理信号
2 常用信号
| 信号名 | 信号编号 | 产生原因 | 默认处理方式 |
|---|---|---|---|
| SIGHUP | 1 | 关闭终端 | 终止 |
| SIGINT | 2 | ctrl+c | 终止 |
| SIGQUIT | 3 | ctrl+\ | 终止+转储 |
| SIGABRT | 6 | abort() | 终止+转储 |
| SIGPE | 8 | 算术错误 | 终止 |
| SIGKILL | 9 | kill -9 pid | 终止,不可捕获/忽略 |
| SIGUSR1 | 10 | 自定义 | 忽略 |
| SIGSEGV | 11 | 段错误 | 终止+转储 |
| SIGUSR2 | 12 | 自定义 | 忽略 |
| SIGALRM | 14 | alarm() | 终止 |
| SIGTERM | 15 | kill pid | 终止 |
| SIGCHLD | 17 | (子)状态变化 | 忽略 |
| SIGSTOP | 19 | ctrl+z | 暂停,不可捕获/忽略 |
参考资料:
3063

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



