Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SIGBLOCK(3)	       FreeBSD Library Functions Manual		   SIGBLOCK(3)

NAME
     sigblock, sigmask -- block	signals

SYNOPSIS
     #include <signal.h>

     int
     sigblock(int mask);

     int
     sigmask(int signum);

DESCRIPTION
     This interface is made obsolete by	sigprocmask(2).

     sigblock()	adds the signals specified in mask to the set of signals cur-
     rently being blocked from delivery.  Signals are blocked if the corre-
     sponding 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.

RETURN VALUES
     The previous set of masked	signals	is returned.

EXAMPLES
     The following example utilizing sigblock():

	   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);

SEE ALSO
     kill(2), sigaction(2), sigprocmask(2), sigaddset(3), sigsetmask(3)

HISTORY
     A sigblock() system call first appeared in	4.2BSD.	 In 4.3BSD-Reno, it
     was reimplemented as a wrapper around sigprocmask(2).  The	old system
     call was kept for compatibility until OpenBSD 4.9.

FreeBSD	13.0			August 1, 2017			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sigblock&sektion=3&manpath=OpenBSD+6.9>

home | help