SIGPENDING - Linux手册页
Linux程序员手册 第2部分
更新日期: 2017-09-15
名称
sigpending,rt_sigpending-检查待处理信号
语法
#包括
int sigpending(sigset_t * set);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
sigpending():_POSIX_C_SOURCE
说明
sigpending()返回待传送给调用线程的待处理信号集(即在阻塞时已发出的信号)。待处理信号的掩码按设置返回。
返回值
sigpending()成功返回0,错误返回-1。如果发生错误,则设置errno来指示原因。
错误说明
- EFAULT
- 设置指向内存的内存,该内存不是进程地址空间的有效部分。
遵循规范
POSIX.1-2001,POSIX.1-2008。
备注
有关操纵信号集的详细信息,请参见sigsetops(3)。
如果一个信号都被阻塞并且具有"忽略"的配置,则在生成信号时不会将其添加到未决信号的掩码中。
线程待处理的信号集是该线程待处理的信号集与整个进程待处理的信号集的并集。参见signal(7)。
通过fork(2)创建的子代最初具有一个空的挂起信号集;待处理信号集在execve(2)中保留。
C library/kernel differences
最初的Linux系统调用名为sigpending()。但是,在Linux 2.2中添加了实时信号后,该系统调用支持的固定大小的32位sigset_t参数不再适合此目的。因此,添加了新的系统调用rt_sigpending()以支持扩展的sigset_t类型。新的系统调用使用第二个参数size_t sigsetsize,它指定set中设置的信号的大小(以字节为单位)。 glibc sigpending()包装函数对我们隐藏了这些细节,在内核提供时透明地调用rt_sigpending()。
BUGS
在包含2.2.1或更高版本的glibc版本中,sigpending()的包装函数中存在一个错误,这意味着未正确返回有关挂起的实时信号的信息。
另外参见
kill(2),sigaction(2),signal(2),sigprocmask(2),sigsuspend(2),sigsetops(3),signal(7)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。