<csignal>
The <csignal>
header is the C++ version of the standard C <signal.h>
header. It declares functions
and macros related to signal handling.
A signal is a condition that can arise during
program execution. A signal can originate by an explicit call to
raise
or abort
, from external sources (such as the user
interrupting the program), or from internal events (such as
floating-point errors or memory violations). Each signal has a
handler, which is a function that the C++ library
calls when a signal occurs (called raising the
signal).
Signals are identified by integers. A program can establish
different handlers for different signal numbers. You can choose to
ignore a signal by using SIG_IGN
as
the signal handler. If the signal is raised, no handler is called, and
the program continues. Each signal also has a default handler (SIG_DFL
). When a program starts, every signal
number is initialized with SIG_IGN
or
SIG_DFL
. The details are
implementation-defined.
You can set your own handler for any signal by calling the
signal
function. A handler is a
function that takes one parameter: the signal number. The signal handler
function is limited in what it can do. Unless a signal is raised by an
explicit call to raise
or abort
, the only useful thing the handler can
do is to set a global flag. The type of the flag must be sig_atomic_t
.
The standard defines a basic set of signals, and an implementation ...
Get C++ In a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.