当前位置:嗨网首页>书籍在线阅读

12-处于等待状态的信号

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

20.11 处于等待状态的信号

如果某进程接受了一个该进程正在阻塞的信号,那么会将该信号填加到进程的等待信号集中。当(且如果)之后解除了对该信号的锁定时,会随之将信号传递给此进程。为了确定进程中处于等待状态的是哪些信号,可以使用sigpending()。

512.png sigpending()系统调用为调用进程返回处于等待状态的信号集,并将其置于 set 指向的sigset_t结构中。随后可以使用20.9节描述的sigismember()函数来检查set。

如果修改了对等待信号的处置,那么当后来解除对信号的锁定时,将根据新的处置来处理信号。这项技术虽然不经常使用,但还是存在一个应用场景,即将对信号的处置置为SIG_IGN,或者SIG_DFL(如果信号的默认行为是忽略),从而阻止传递处于等待状态的信号。因此,会将信号从进程的等待信号集中移除,从而不传递该信号。