SIGNAL(2)

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. Signal handler are routines that are called whenever the process receives the corresponding signal. Using alarm(2) which sends a SIGALRM signal to the process, it is able to manage regular work easily. A process can also be told to re-read its configuration files using a signal handler.

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 BSD systems, signals under Linux are reset to their default behavior when raised.

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

CONFORMING TO
ANSI C

SEE ALSO
kill(1), kill(2), killpg(2), pause(2), raise(3), sigaction(2), signal(7), sigsetops(3), sigvec(2), alarm(2).