34、Linux信号机制:原理、应用与实践

Linux信号机制:原理、应用与实践

1. 信号基础

信号是UNIX和Linux系统针对特定条件生成的事件,进程接收到信号后可采取相应行动。“raise”表示信号的生成,“catch”表示信号的接收。信号可由多种错误条件触发,如内存段违规、浮点处理器错误或非法指令等。同时,shell和终端处理程序也会生成信号以引发中断,进程之间还能通过发送信号来传递信息或改变行为。

信号名称在包含头文件 signal.h 后被定义,均以 SIG 开头,常见信号及其描述如下表所示:
| 信号名称 | 描述 |
| ---- | ---- |
| SIGABORT | 进程中止 |
| SIGALRM | 闹钟信号 |
| SIGFPE | 浮点异常 |
| SIGHUP | 挂起信号 |
| SIGILL | 非法指令 |
| SIGINT | 终端中断(通常由Ctrl+C触发) |
| SIGKILL | 终止信号(不可捕获或忽略) |
| SIGPIPE | 向无读端的管道写入数据 |
| SIGQUIT | 终端退出 |
| SIGSEGV | 无效内存段访问 |
| SIGTERM | 终止请求 |
| SIGUSR1 | 用户自定义信号1 |
| SIGUSR2 | 用户自定义信号2 |

若进程收到信号却未提前安排捕获,通常会立即终止,并可能生成核心转储文件 core ,该文件有助于调试。

2. 信号的发送与接收
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值