libc.info: Signals

Go forward to Timefns
Go backward to Wchar strings
Go up to Top
Go to the top op libc

Signal Handling (`signal.h')

A "signal" is an event that interrupts the normal flow of control in
your program.  Your operating environment normally defines the full set
of signals available (see `sys/signal.h'), as well as the default means
of dealing with them--typically, either printing an error message and
aborting your program, or ignoring the signal.
   All systems support at least the following signals:
`SIGABRT'
     Abnormal termination of a program; raised by the <<abort>>
     function.
`SIGFPE'
     A domain error in arithmetic, such as overflow, or division by
     zero.
`SIGILL'
     Attempt to execute as a function data that is not executable.
`SIGINT'
     Interrupt; an interactive attention signal.
`SIGSEGV'
     An attempt to access a memory location that is not available.
`SIGTERM'
     A request that your program end execution.
   Two functions are available for dealing with asynchronous
signals--one to allow your program to send signals to itself (this is
called "raising" a signal), and one to specify subroutines (called
"handlers" to handle particular signals that you anticipate may
occur--whether raised by your own program or the operating environment.
   To support these functions, `signal.h' defines three macros:
`SIG_DFL'
     Used with the `signal' function in place of a pointer to a handler
     subroutine, to select the operating environment's default handling
     of a signal.
`SIG_IGN'
     Used with the `signal' function in place of a pointer to a
     handler, to ignore a particular signal.
`SIG_ERR'
     Returned by the `signal' function in place of a pointer to a
     handler, to indicate that your request to set up a handler could
     not be honored for some reason.
   `signal.h' also defines an integral type, `sig_atomic_t'.  This type
is not used in any function declarations; it exists only to allow your
signal handlers to declare a static storage location where they may
store a signal value.  (Static storage is not otherwise reliable from
signal handlers.)