2.9. Tailoring error signaling, error handling, and program exit
All trap or error signals raised by the C library go through the __raise() function. You can re‑implement this function or the lower‑level functions that it uses.
Caution
The IEEE 754 standard for floating‑point processing states that the default response to an exception is to proceed without a trap. You can modify floating‑point error handling by tailoring the functions and definitions in fenv.h. See also Chapter 4 Floating‑point Support.
See the rt_misc.h include file for more information on error‑related functions.
The trap and error‑handling functions are shown in Table 2.10. See also Tailoring the C library to a new execution environment for additional information about application initialization and shutdown.
Table 2.10. Trap and error handling
| Function | Description |
|---|
_sys_exit() | Called, eventually, by all exits from the library. See _sys_exit(). |
errno | Is a static variable used with error handling. See errno. |
__rt_errno_addr() | This function is called to obtain the address of the variable errno. See __rt_errno_addr(). |
__raise() | Raises a signal to indicate a runtime anomaly. See __raise(). |
__rt_raise() | Raises a signal to indicate a runtime anomaly. See __rt_raise(). |
__default_signal_handler() | Displays an error indication to the user. See __default_signal_handler(). |
_ttywrch() | Writes a character to the console. The default implementation of _ttywrch() is semihosted and, therefore, uses semihosting calls. See _ttywrch(). |
__rt_fp_status_addr() | This function is called to obtain the address of the fp status word. See __rt_fp_status_addr(). |