|SIGPROCMASK(2)||Linux Programmer's Manual||SIGPROCMASK(2)|
NAME¶sigprocmask, rt_sigprocmask - examine and change blocked signals
/* Prototype for the glibc wrapper function */ int sigprocmask(int how, const sigset_t *set, sigset_t *oldset); /* Prototype for the underlying system call */ int rt_sigprocmask(int how, const kernel_sigset_t *set, kernel_sigset_t *oldset, size_t sigsetsize); /* Prototype for the legacy system call (deprecated) */ int sigprocmask(int how, const old_kernel_sigset_t *set, old_kernel_sigset_t *oldset);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
DESCRIPTION¶sigprocmask() is used to fetch and/or change the signal mask of the calling thread. The signal mask is the set of signals whose delivery is currently blocked for the caller (see also signal(7) for more details).
- The set of blocked signals is the union of the current set and the set argument.
- The signals in set are removed from the current set of blocked signals. It is permissible to attempt to unblock a signal which is not blocked.
- The set of blocked signals is set to the argument set.
RETURN VALUE¶sigprocmask() returns 0 on success and -1 on error. In the event of an error, errno is set to indicate the cause.
- The set or oldset argument points outside the process's allocated address space.
- Either the value specified in how was invalid or the kernel does not support the size passed in sigsetsize.
CONFORMING TO¶POSIX.1-2001, POSIX.1-2008.
NOTES¶It is not possible to block SIGKILL or SIGSTOP. Attempts to do so are silently ignored.
C library/kernel differences¶The kernel's definition of sigset_t differs in size from that used by the C library. In this manual page, the former is referred to as kernel_sigset_t (it is nevertheless named sigset_t in the kernel sources).
SEE ALSO¶kill(2), pause(2), sigaction(2), signal(2), sigpending(2), sigsuspend(2), pthread_sigmask(3), sigqueue(3), sigsetops(3), signal(7)
COLOPHON¶This page is part of release 4.10 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/.