Manpage of SIGNAL
SIGNAL
Section: Linux Programmer's Manual (2)
Updated: 21 July 2025
Index
NAME
signal - ANSI C signal handling
SYNOPSIS
#include <signal.h>
void (*signal(int signum, void (*handler)(int)))(int);
DESCRIPTION
The
signal
system call installs a new signal handler for the signal with number
signum.
The signal handler is set to
handler
which may be a user specified function, or one of the following:
-
- SIG_IGN
-
Ignore the signal.
- SIG_DFL
-
Reset the signal to its default behavior.
The integer argument that is handed over to the signal handler routine is the
signal number. This makes it possible to use one signal handler for several
signals.
RETURN VALUE
signal
returns the previous value of the signal handler, or
SIG_ERR
on error.
NOTES
Signal handlers cannot be set for
SIGKILL
or
SIGSTOP.
Unlike on BSD systems, signals under Linux are reset to their default
behavior when raised.
However, if you include
<bsd/signal.h>
instead of
<signal.h>
then
signal
is redefined as
__bsd_signal
and signal has the BSD semantics.
Both versions of
signal
are library routines built on top of
If you're confused by the prototype at the top of this manpage, it
may help to see it separated out thus:
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
According to POSIX, the behaviour of a process is undefined after it
ignores a SIGFPE, SIGILL, or SIGSEGV signal that was not generated
by the kill() or the raise() functions.
Integer division by zero has undefined result.
On some architectures it will generate a SIGFPE signal.
(Also dividing the most negative integer by -1 may generate SIGFPE.)
Ignoring this signal might lead to an endless loop.
According to POSIX (B.3.3.1.3) you must not set the action for SIGCHLD
to SIG_IGN. Here the BSD and SYSV behaviours differ, causing BSD software
that sets the action for SIGCHLD to SIG_IGN to fail on Linux.
CONFORMING TO
ANSI C
SEE ALSO
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- NOTES
-
- CONFORMING TO
-
- SEE ALSO
-
This document was created by
using the manual pages.
Time: 11:56:07 GMT, March 24, 2025