[OpenBSD]

Manual Page Search Parameters

SIGBLOCK(3) Library Functions Manual SIGBLOCK(3)

NAME

sigblock, sigmaskblock 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.
August 1, 2017 OpenBSD-current