SIGPENDINGSection: Linux Programmer's Manual (2)
Index | Return to Main Contents
NAMEsigpending, rt_sigpending - examine pending signals
int sigpending(sigset_t *set);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
RETURN VALUEsigpending() returns 0 on success and -1 on error. In the event of an error, errno is set to indicate the cause.
- set points to memory which is not a valid part of the process address space.
CONFORMING TOPOSIX.1-2001, POSIX.1-2008.
NOTESSee sigsetops(3) for details on manipulating signal sets.
If a signal is both blocked and has a disposition of "ignored", it is not added to the mask of pending signals when generated.
The set of signals that is pending for a thread is the union of the set of signals that is pending for that thread and the set of signals that is pending for the process as a whole; see signal(7).
C library/kernel differencesThe original Linux system call was named sigpending(). However, with the addition of real-time signals in Linux 2.2, the fixed-size, 32-bit sigset_t argument supported by that system call was no longer fit for purpose. Consequently, a new system call, rt_sigpending(), was added to support an enlarged sigset_t type. The new system call takes a second argument, size_t sigsetsize, which specifies the size in bytes of the signal set in set. The glibc sigpending() wrapper function hides these details from us, transparently calling rt_sigpending() when the kernel provides it.
BUGSIn versions of glibc up to and including 2.2.1, there is a bug in the wrapper function for sigpending() which means that information about pending real-time signals is not correctly returned.
SEE ALSOkill(2), sigaction(2), signal(2), sigprocmask(2), sigsuspend(2), sigsetops(3), signal(7)
COLOPHONThis page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
- RETURN VALUE
- CONFORMING TO
- SEE ALSO
Return to Main Contents