Unix/Linux Go Back    


NetBSD 6.1.5 - man page for sigsetmask (netbsd section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


SIGSETMASK(3)			   BSD 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 corre-
     sponding 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.

BSD					 August 10, 2002				      BSD
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 10:22 PM.