Table 11 shows
the signals supported by the
It also shows which signals use an additional argument to give more
information about the circumstance in which the signal was raised.
The additional argument is given in the
__raise(). For example, division by floating-point
zero results in a
SIGFPE signal with a corresponding
additional argument of
Returned when any untrapped exception is thrown, such as:
signal is only used if
|SIGFPE||2||Signals any arithmetic exception, for example, division by zero. Used by hard and soft floating-point and by integer division.||A set of bits from FE_EX_INEXACT, FE_EX_UNDERFLOW, FE_EX_OVERFLOW, FE_EX_DIVBYZERO, FE_EX_INVALID, DIVBYZERO [a]|
|SIGILL [b]||3||Illegal instruction.||None|
|SIGINT [b]||4||Attention request from user.||None|
|SIGSEGV [b]||5||Bad memory access.||None|
|SIGTERM [b]||6||Termination request.||None|
|SIGRTRED||8||Redirection failed on a runtime library input/output stream.||Name of file or device being re-opened to redirect a standard stream|
|SIGRTMEM||9||Out of heap space during initialization or after corruption.||Size of failed request|
|SIGPVFN||12||A pure virtual function was called from C++.||-|
Not normally used.
|SIGOUTOFHEAP [c]||14||Returned by the C++ function ||Size of failed request|
[a] These constants are defined in
[b] This signal is never generated by the library. It is available for you to raise manually, if required.
[c] Not used in RVCT 2.1, and later.
Although SIGSTAK exists
signal.h, this signal is not generated by
the C library and is considered obsolete.
A signal number greater than SIGUSR2 can
be passed through
__raise() and caught by the default
signal handler, but it cannot be caught by a handler registered
signal() returns an error code if you
try to register a handler for a signal number greater than SIGUSR2.
The default handling of all recognized signals is to print
a diagnostic message and call
default behavior applies at program startup and until you change
The IEEE 754 standard for floating-point processing states
that the default action to an exception is to proceed without a
trap. A raised exception in floating-point calculations does not, by
default, generate SIGFPE. You
can modify floating-point error handling by tailoring the functions
and definitions in
fenv.h. However, you must
compile these functions in an IEEE standards compliant mode, and
is disabled by the armclang command-line option
For all the signals in Table 11, when a signal occurs, if the handler
points to a function, the equivalent of
signal(sig, SIG_DFL) is
executed before the call to the handler.
If the SIGILL signal is
received by a handler specified to by the
the default handling is reset.
- Other information
IEEE Standard for Floating-Point Arithmetic (IEEE 754), 1985 version.