2.4. Signal Concepts

If a subsequent occurrence of a pending signal is generated, the signal is delivered or accepted more than once if a handler has been set for the signal with SA_SIGINFO set.

A SIGBUS signal may be generated for a misaligned memory access:

2.4.2. Realtime Signal Generation and Delivery

The signal mask for a thread created to invoke the sigev_notify_function function (see sigevent) inherits the signal mask of the thread to which the signal is delivered.

2.4.3. Signal Actions

For SIGILL signals generated by the execution of an illegal instruction, the si_code field in the siginfo_t structure may contain one of the following:

Value Meaning
ILL_ILLOPC Illegal opcode is executed
ILL_PRVOPC Instruction requires privileged CPU mode
ILL_COPROC Co-processor instruction error

For SIGSEGV signals generated by an invalid memory access, the si_code field may contain one of the following:

Value Meaning
SEGV_MAPERR The address isn't mapped
SEGV_ACCERR The mapping doesn't allow the attempted access

For SIGBUS signals generated by an invalid memory access, the si_code field may contain one of the following:

Value Meaning
BUS_ADRALN Invalid address alignment
BUS_ADRERR Access to a non-existent area of a memory object
BUS_OBJERR Hardware-specific bus error

For SIGTRAP signals generated by breakpoint or other debug traps, the si_code field may contain one of the following:

Value Meaning
TRAP_BRKPT Breakpoint trap
TRAP_TRACE Trace trap

For SIGCLD signals generated during process termination or job control related events, the si_code field may contain one of the following:

Value Meaning
CLD_EXITED Process has exited
CLD_KILLED Process was killed
CLD_DUMPED Process terminated abnormally
CLD_STOPPED Process has been stopped
CLD_CONTINUED A stopped process has been continued

For SIGFPE signals generated for floating-point exceptions, the si_code field may contain one of the following:

Value Meaning
FPE_INTDIV Integer division by zero
FPE_INTOVF Floating point overflow
FPE_FLTDIV Floating point division by zero
FPE_FLTUND Floating point underflow
FPE_FLTRES Floating point inexact result
FPE_FLTINV Invalid floating point operation
FPE_NOFPU No floating point hardware or software emulator present
FPE_NOMEM No memory for floating point context save area