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

19-等待信号集

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

10.5.3 等待信号集

下面是POSIX定义的允许进程临时改变信号掩码的第三个函数,该函数始终处于等待状态,直到产生一个终止该进程或被该进程处理的信号:

499.png 如果一个信号终止了进程,sigsuspend()不会返回。如果一个信号被发送和处理了,sigsuspend()在信号处理程序返回后,会返回-1,并将errno值设置为EINTR。如果set是一个无效指针,errno被设置成EFAULT。

sigsuspend()的一个常见的使用场景是获取已到达的、并在程序运行的临界区被阻塞的信号。首先,进程会使用sigprocmask()来阻塞一个信号集,将旧的信号掩码保存在oldset中。退出临界区后,进程会调用sigsuspend(),将oldset赋给set。