int
sigblock(int mask)
int
sigmask(signum)
sigblock()
adds the signals specified in
mask
to the set of signals currently
being blocked from delivery.
Signals are blocked if the
corresponding bit in
mask
is a 1; the macro
sigmask()
is provided to construct the mask for a given
signum.
It is not possible to block
SIGKILL
or
SIGSTOP;
this restriction is silently
imposed by the system.
):
int omask;
omask = sigblock(sigmask(SIGINT) | sigmask(SIGHUP));
Becomes:
sigset_t set, oset;
sigemptyset(&set);
sigaddset(&set, SIGINT);
sigaddset(&set, SIGHUP);
sigprocmask(SIG_BLOCK, &set, &oset);
Another use of
sigblock()
is to get the current set of masked signals without changing what
is actually blocked.
Instead of:
int set;
set = sigblock(0);
Use the following:
sigset_t set;
sigprocmask(SIG_BLOCK, NULL, &set);
)
function call appeared in
4.2BSD
and has been deprecated.