Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
SIGSETMASK(3)              Library Functions Manual              SIGSETMASK(3)
NAME
     sigsetmask - set current signal mask
LIBRARY
     Standard C Library (libc, -lc)
SYNOPSIS
     #include <signal.h>
     int
     sigsetmask(int mask);
     sigmask(signum);
DESCRIPTION
     This interface is made obsolete by: sigprocmask(2).
     sigsetmask() sets the current signal mask.  Signals are blocked from
     delivery if the corresponding bit in mask is a 1; the macro sigmask() is
     provided to construct the mask for a given signum.
     The system quietly disallows SIGKILL or SIGSTOP to be blocked.
RETURN VALUES
     The previous set of masked signals is returned.
EXAMPLES
     The following example using sigsetmask():
           int omask;
           omask = sigblock(sigmask(SIGINT) | sigmask(SIGHUP));
           ...
           sigsetmask(omask & ~(sigmask(SIGINT) | sigmask(SIGHUP)));
     Could be converted literally to:
           sigset_t set, oset;
           sigemptyset(&set);
           sigaddset(&set, SIGINT);
           sigaddset(&set, SIGHUP);
           sigprocmask(SIG_BLOCK, &set, &oset);
           ...
           sigdelset(&oset, SIGINT);
           sigdelset(&oset, SIGHUP);
           sigprocmask(SIG_SETMASK, &oset, NULL);
     Another, clearer, alternative is:
           sigset_t set;
           sigemptyset(&set);
           sigaddset(&set, SIGINT);
           sigaddset(&set, SIGHUP);
           sigprocmask(SIG_BLOCK, &set, NULL);
           ...
           sigprocmask(SIG_UNBLOCK, &set, NULL);
     To completely clear the signal mask using sigsetmask() one can do:
           (void) sigsetmask(0);
     Which can be expressed via sigprocmask(2) as:
           sigset_t eset;
           sigemptyset(&eset);
           (void) sigprocmask(SIG_SETMASK, &eset, NULL);
SEE ALSO
     kill(2), sigaction(2), sigprocmask(2), sigsuspend(2), sigblock(3),
     sigsetops(3), sigvec(3)
HISTORY
     The sigsetmask() function call appeared in 4.2BSD and has been
     deprecated.
NetBSD 10.99                    August 10, 2002                   NetBSD 10.99