Section (3) sigset
sigset, sighold, sigrelse, sigignore — System V signal API
#include <signal.h> typedef void (*sighandler_t)(int);
These functions are provided in glibc as a compatibility interface for programs that make use of the historical System V signal API. This API is obsolete: new applications should use the POSIX signal API (sigaction(2), sigprocmask(2), etc.)
modifies the disposition of the signal
disp argument can be the
address of a signal handler function, or one of the following
Reset the disposition of
sigto the default.
sigto the process_zsingle_quotesz_s signal mask, but leave the disposition of
the address of a signal handler, then
sig is added to the process_zsingle_quotesz_s
signal mask during execution of the handler.
specified as a value other than
sig is removed from the
process_zsingle_quotesz_s signal mask.
The dispositions for
SIGSTOP cannot be
sighold() function adds
sig to the calling
process_zsingle_quotesz_s signal mask.
sig from the
calling process_zsingle_quotesz_s signal mask.
sets the disposition of
sig was blocked before the
call, or the signal_zsingle_quotesz_s previous disposition if it was not
blocked before the call. On error,
sigset() returns −1, with
errno set to indicate the error.
(But see BUGS below.)
sigignore() functions return 0 on success;
on error, these functions return −1 and set
errno to indicate the error.
sigrelse() see the ERRORS under
sigignore(), see the
errors under sigaction(2).
For an explanation of the terms used in this section, see attributes(7).
SVr4, POSIX.1-2001, POSIX.1-2008. These functions are
obsolete: do not use them in new programs. POSIX.1-2008 marks
sigset() as obsolete, recommending the use
of sigaction(2), sigprocmask(2), pthread_sigmask(3), and
These functions appeared in glibc version 2.1.
The sighandler_t type is a GNU
extension; it is used on this page only to make the
sigset() prototype more easily
provides reliable signal handling semantics (as when calling
sa_mask equal to 0).
On System V, the
function provides unreliable semantics (as when calling
sa_mask equal to SA_RESETHAND | SA_NODEFER). On
signal() provides reliable
semantics. POSIX.1-2001 leaves these aspects of
signal() unspecified. See signal(2) for further
In versions of glibc before 2.2,
sigset() did not unblock
disp was specified as a value
In versions of glibc before 2.5,
sigset() does not correctly return the
previous disposition of the signal in two cases. First, if
disp is specified as
SIG_HOLD, then a successful
sigset() always returns
SIG_HOLD. Instead, it should
return the previous disposition of the signal (unless the
signal was blocked, in which case
SIG_HOLD should be returned). Second, if
the signal is currently blocked, then the return value of a
sigset() should be
SIG_HOLD. Instead, the previous
disposition of the signal is returned. These problems have
been fixed since glibc 2.5.
This page is part of release 4.16 of the Linux
man-pages project. A
description of the project, information about reporting bugs,
and the latest version of this page, can be found at
Copyright (c) 2005 by Michael Kerrisk <mtk.manpagesgmail.com>
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Since the Linux kernel and libraries are constantly changing, this
manual page may be incorrect or out-of-date. The author(s) assume no
responsibility for errors or omissions, or for damages resulting from
the use of the information contained herein. The author(s) may not
have taken the same level of care in the production of this manual,
which is licensed free of charge, as they might when working
Formatted or processed versions of this manual, if unaccompanied by
the source, must acknowledge the copyright and authors of this work.