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:

  • a 16-bit access using a pointer that isn't 16-bit aligned
  • a 32-bit access using a pointer that isn't 32-bit aligned

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 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_OBJERR 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