UNIX系统V Release 4信号处理机制详解
1. 每个进程的信号变量
在UNIX系统V Release 4中,每个进程都有一系列与信号相关的变量,这些变量存储在特定的结构体中,用于管理和处理信号。以下是这些变量的详细介绍:
| 结构体 | 元素 | 描述 |
| — | — | — |
| proc | p_sig | 待处理信号的掩码 |
| | p_sigmask | 用于/proc的跟踪信号掩码 |
| | p_hold | 该进程持有的信号掩码 |
| | p_ignore | 该进程忽略的信号掩码 |
| | p_siginfo | 使信号处理程序接收更多信息的信号掩码 |
| | p_sigqueue | siginfo结构体队列的指针 |
| | p_curinfo | 当前信号信息的指针 |
| | p_cursig | 正在处理的最新信号 |
| user | u_signodefer | 捕获时延迟的信号掩码 |
| | u_sigaltstack | 信号的备用栈 |
| | u_sigonstack | 在备用栈上处理的信号掩码 |
| | u_sigresethand | 捕获时重置的信号掩码 |
| | u_sigrestart | 重启中断系统调用的信号掩码 |
| | u_sigoldmask | sigsuspend使用的信号掩码 |
| | u_sigflag | sigsuspend使用的布尔值 |
| | u_sigmask[MAXSIG] | 处理程序执行时持有的信号掩码 |
| |