sigpending(2) - Linux 手册页

名称

sigpending - 检查待处理信号

概要

#include <signal.h>

int sigpending(sigset_t *set);

glibc 的功能测试宏要求(参见 feature_test_macros(7))

sigpending(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

描述

sigpending() 返回对调用线程而言待处理的信号集(即,在信号被屏蔽期间产生的信号)。待处理信号的屏蔽位会返回到 set 中。

返回值

sigpending() 成功时返回 0,出错时返回 -1。

错误

EFAULT

set 指向的内存不是进程地址空间中的有效部分。

符合

POSIX.1-2001。

说明

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

线程的待处理信号集是该线程的待处理信号集与进程整体的待处理信号集的并集;请参阅 signal(7)。

通过 fork(2) 创建的子进程最初具有空的待处理信号集;待处理信号集在 execve(2) 中被保留。

错误

在 glibc 版本高达且包括 2.2.1 的版本中,sigpending() 的包装函数中存在一个错误,导致无法正确返回有关待处理实时信号的信息。

参见

kill(2), sigaction(2), signal(2), sigprocmask(2), sigsuspend(2), sigsetops(3), signal(7)

引用自

clone(2), pthread_create(3), pthread_kill(3), pthread_sigmask(3), sigtimedwait(2), sigwait(3)