The
sigprocmask()
system call examines and/or changes the current signal mask (those signals
that are blocked from delivery).
Signals are blocked if they are members of the current signal mask set.
If
set
is not null, the action of
sigprocmask()
depends on the value of the
how
argument.
The signal mask is changed as a function of the specified
set
and the current mask.
The function is specified by
how
using one of the following values from
<signal.h>:
SIG_BLOCK
|
The new mask is the union of the current mask and the specified
set.
|
SIG_UNBLOCK
|
|
The new mask is the intersection of the current mask
and the complement of the specified
set.
|
SIG_SETMASK
|
|
The current mask is replaced by the specified
set.
|
If
oset
is not null, it is set to
the previous value of the signal mask.
When
set
is null,
the value of
how
is insignificant and the mask remains unset
providing a way to examine the signal mask without modification.
The system
quietly disallows
SIGKILL
or
SIGSTOP
to be blocked.
In threaded applications,
pthread_sigmask(3)
must be used instead of
sigprocmask().