Manual Page Result
0
Command: sigblock | Section: 3 | Source: OpenBSD | File: sigblock.3
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
currently being blocked from delivery. Signals are blocked if the
corresponding 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 14.1-RELEASE-p8 December 13, 2022 FreeBSD 14.1-RELEASE-p8