MirOS Manual: sigsetmask(3)

SIGSETMASK(3)              BSD Programmer's Manual               SIGSETMASK(3)

NAME

     sigsetmask - set current signal mask

SYNOPSIS

     #include <signal.h>

     int
     sigsetmask(int mask);

     sigmask(int signum);

DESCRIPTION

     This interface is made obsoleted 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 utilizing 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 deprecat-
     ed.

MirOS BSD #10-current           March 10, 1991                               1

Generated on 2014-04-02 20:57:59 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.