SIGSETOPS - Linux手册页
Linux程序员手册 第3部分
更新日期: 2016-03-15
名称
sigemptyset,sigfillset,sigaddset,sigdelset,sigismember-POSIX信号集操作
语法
#包括
int sigemptyset(sigset_t *设置);
int sigfillset(sigset_t *集);
int sigaddset(sigset_t * set,整数符号);
int sigdelset(sigset_t * set,int signum);
int sigismember(const sigset_t * set,int signum);复制代码
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
sigemptyset(),sigfillset(),sigaddset(),sigdelset(),sigismember():
- _POSIX_C_SOURCE
说明
这些功能允许操作POSIX信号集。
sigemptyset()将set给定的信号集初始化为空,所有信号都排除在集合之外。
sigfillset()将设置初始化为完整,包括所有信号。
sigaddset()和sigdelset()分别从集合中添加和删除信号信号。
sigismember()测试signum是否为set的成员。
sigset_t类型的对象必须先通过调用sigemptyset()或sigfillset()进行初始化,然后再传递给函数sigaddset(),sigdelset()和sigismember()或以下所述的其他glibc函数(sigisemptyset(),sigandset( )和sigorset())。如果不这样做,结果是不确定的。
返回值
sigemptyset(),sigfillset(),sigaddset()和sigdelset()成功返回0,错误返回-1。
如果signum是set的成员,则sigismember()返回1;如果signum不是set的成员,则返回0;如果错误,则返回-1。
发生错误时,这些函数会将errno设置为指示错误原因。
错误说明
- EINVAL
- 信号不是有效信号。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
sigemptyset(),sigfillset(), sigaddset(),sigdelset(), sigismember(),sigisemptyset(), sigorset(),sigandset() | Thread safety | MT-Safe |
遵循规范
POSIX.1-2001,POSIX.1-2008。
备注
创建填充信号集时,glibc sigfillset()函数不包括NPTL线程实现内部使用的两个实时信号。有关详细信息,请参见nptl(7)。
Glibc extensions
如果定义了_GNU_SOURCE功能测试宏,则将公开其他三个用于处理信号集的函数:
int sigisemptyset(const sigset_t *set); int sigorset(sigset_t *dest, const sigset_t *left, const sigset_t *right); int sigandset(sigset_t *dest, const sigset_t *left, const sigset_t *right);
如果set不包含任何信号,则sigisemptyset()返回1,否则返回0。
sigorset()将集合的并集放在dest中。 sigandset()将集合的交集放在dest中。这两个函数均在成功时返回0,在失败时返回-1。
这些功能是非标准的(其他一些系统提供了类似的功能),在便携式应用中应避免使用它们。
另外参见
sigaction(2),sigpending(2),sigprocmask(2),sigsuspend(2)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。