15、深入理解信号处理:原理、应用与实践

深入理解信号处理:原理、应用与实践

1. 信号概述

信号是软件中断,能因多种原因产生。比如,在熟模式下按下 Control - C 通常会在前台进程中生成中断信号;进程可以向其他进程甚至自身发送信号;操作系统也会因某些原因(如即将停电、系统即将停止)生成信号。

信号的表示方式多样,例如信号编号 9 在 C 程序中通常写为 SIGKILL ,而很多实用工具(如 kill )只接受 9 或 KILL (不带 SIG 前缀), Expect 则三种形式都接受。

现代系统中常见的信号如下表所示:
| 信号名称 | 描述 |
| ---- | ---- |
| SIGHUP | 挂起 |
| SIGINT | 中断 |
| SIGQUIT | 退出 |
| SIGKILL | 终止 |
| SIGPIPE | 管道写入失败 |
| SIGTERM | 软件终止 |
| SIGSTOP | 停止(实际为“暂停”) |
| SIGTSTP | 键盘停止 |
| SIGCONT | 继续 |
| SIGCHLD | 子进程终止 |
| SIGWINCH | 窗口大小改变 |
| SIGUSR1 | 用户自定义 |
| SIGUSR2 | 用户自定义 |

2. 信号的生成与处理

假设具备相应权限,可以通过 shell 脚本中的 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值