sigprocmask(3)sigprocmask(3)Namesigprocmask - examine and change blocked signals (POSIX)
Syntax
#include <signal.h>
int sigprocmask(how, set, oset)
int how;
sigset_t *set, *oset;
Description
The system call is used to examine and/or change the calling process's
signal mask. If the value of the argument set is not NULL, it points to
a set of signals that will be used to change the currently blocked set.
The value of the argument how indicates the manner in which the set is
changed as defined by the following values, defined in <signal.h>:
SIG_BLOCK
The resulting signal set is the union of the current set and the
signal set pointed to by the argument set.
SIG_UNBLOCK
The resulting signal set is the intersection of the current set
and the complement of the signal set pointed to by the argument
set.
SIG_SETMASK
The resulting signal set is the signal set pointed to by the
argument set.
If the argument oset is not NULL, the previous mask is stored in the
space pointed to by oset. If the value of the argument set is NULL,
the process's signal mask is unchanged; thus, the function can be used
to enquire about currently blocked signals.
The signal masks used as arguments to this function are manipulated
using the functions.
As a system restriction, SIGKILL and SIGSTOP cannot be blocked.
Return Values
A 0 return value indicates a successful call. A -1 return value indi‐
cates an error and errno is set to indicated the reason.
Diagnostics
The function fails and the signal mask remains unchanged if the follow
occurs:
[EINVAL] The value of the how argument is not equal to one of the
defined values.
See Alsokill(2), sigsetmask(2), sigvec(2), sigblock(2), sigsetops(3)sigprocmask(3)