SIGSETMASK(3)           NetBSD 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 depre-
     cated.

NetBSD 6.0                      August 10, 2002                     NetBSD 6.0

You can also request any man page by name and (optionally) by section:

Command: 
Section: 
Architecture: 
Collection: 
 

Use the DEFAULT collection to view manual pages for third-party software.


©1994 Man-cgi 1.15, Panagiotis Christias <christia@softlab.ntua.gr>
©1996-2014 Modified for NetBSD by Kimmo Suominen