sigprocmask() - Unix,Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

sigprocmask() - Unix,Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

sigprocmask - 检查和更改被阻塞的信号

语法

#include <signal.h>

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

描述

sigprocmask() 用于更改信号掩码,即当前被阻塞的信号集。调用的行为取决于 how 的值,如下所示。
标签描述
SIG_BLOCK
 被阻塞的信号集是当前集和 set 参数的并集。
SIG_UNBLOCK
 set 中的信号将从当前被阻塞的信号集中移除。尝试解除对未被阻塞的信号的阻塞是合法的。
SIG_SETMASK
 被阻塞的信号集将设置为参数 set

如果 oldset 非空,则信号掩码的先前值将存储在 oldset 中。

如果 set 为 NULL,则信号掩码保持不变(即,忽略 how),但当前信号掩码的值仍将返回到 oldset(它不为 NULL)。

在多线程进程中,sigprocmask() 的使用未指定;请参阅 pthread_sigmask(3)。

返回值

sigprocmask() 成功时返回 0,错误时返回 -1。

错误

EINVAL how 中指定的值无效。

备注

无法阻塞 SIGKILLSIGSTOP。尝试这样做将被静默忽略。

如果在 SIGBUSSIGFPESIGILLSIGSEGV 被阻塞时生成,则结果未定义,除非信号是由 kill(2)、sigqueue(2) 或 raise(3) 生成的。

有关操作信号集的详细信息,请参阅 sigsetops(3)。

符合标准

POSIX.1-2001。

参见



previous next Printer Friendly

广告


  

广告



广告