Main index | Section 3 | Options |
#include <signal.h>
Type | Member | Description |
int | si_signo | signal number |
int | si_errno | error number |
int | si_code | signal code |
union sigval | si_value | signal value |
pid_t | si_pid | sending process ID |
uid_t | si_uid | sending process's real user ID |
void | *si_addr | address of faulting instruction |
int | si_status | exit value or signal |
long | si_band | band event for SIGPOLL |
int | si_trapno | machine trap code |
int | si_timerid | POSIX timer ID |
int | si_overrun | POSIX timer overrun count |
int | si_mqd | POSIX message queue ID |
The si_signo member contains the signal number.
The si_errno member contains an error number defined in the file <errno.h>.
The si_code member contains a code which describes the cause of the signal. The macros specified in the Code column of the following table are defined for use as values of si_code that are signal-specific or non-signal-specific reasons why the signal was generated:
Signal | Code | Reason |
SIGILL | ILL_ILLOPC | illegal opcode |
ILL_ILLOPN | illegal operand | |
ILL_ILLADR | illegal addressing mode | |
ILL_ILLTRP | illegal trap | |
ILL_PRVOPC | illegal privileged opcode | |
ILL_PRVREG | illegal privileged register | |
ILL_COPROC | coprocessor error | |
ILL_BADSTK | internal stack error | |
SIGFPE | FPE_INTDIV | integer divide by zero |
FPE_INTOVF | integer overflow | |
FPE_FLTDIV | floating-point divide by zero | |
FPE_FLTOVF | floating-point overflow | |
FPE_FLTUND | floating-point underflow | |
FPE_FLTRES | floating-point inexact result | |
FPE_FLTINV | invalid floating-point operation | |
FPE_FLTSUB | subscript out of range | |
SIGSEGV | SEGV_MAPERR | address not mapped to object |
SEGV_ACCERR | invalid permissions for mapped object | |
SIGBUS | BUS_ADRALN | invalid address alignment |
BUS_ADRERR | nonexistent physical address | |
BUS_OBJERR | object-specific hardware error | |
BUS_OOMERR | cannot alloc a page to map at fault | |
SIGTRAP | TRAP_BRKPT | process breakpoint |
TRAP_TRACE | process trace trap | |
TRAP_DTRACE | DTrace induced trap | |
TRAP_CAP | capabilities protective trap | |
SIGCHLD | CLD_EXITED | child has exited |
CLD_KILLED | child has terminated abnormally and did not create a core file | |
CLD_DUMPED | child has terminated abnormally and created a core file | |
CLD_TRAPPED | traced child has trapped | |
CLD_STOPPED | child has stopped | |
CLD_CONTINUED | stopped child has continued | |
SIGPOLL | POLL_IN | data input available |
POLL_OUT | output buffers available | |
POLL_MSG | input message available | |
POLL_ERR | I/O error | |
POLL_PRI | high priority input available | |
POLL_HUP | device disconnected | |
Any | SI_NOINFO | Only the si_signo member is meaningful; the value of all other members is unspecified. |
SI_USER | signal sent by kill(2) | |
SI_QUEUE | signal sent by sigqueue(2) | |
SI_TIMER | signal generated by expiration of a timer set by timer_settime(2) | |
SI_ASYNCIO | signal generated by completion of an asynchronous I/O request | |
SI_MESGQ | signal generated by arrival of a message on an empty message queue | |
SI_KERNEL | signal generated by miscellaneous parts of the kernel | |
SI_LWP | signal sent by pthread_kill(3) |
In addition, the following signal-specific information is available:
Signal | Member | Value |
SIGILL | si_addr | address of faulting instruction |
si_trapno | machine dependent of trap code | |
SIGFPE | si_addr | address of faulting instruction |
si_trapno | machine dependent of trap code | |
SIGSEGV | si_addr | address of faulting memory reference |
si_trapno | machine dependent of trap code | |
SIGBUS | si_addr | address of faulting instruction |
si_trapno | machine dependent of trap code | |
SIGCHLD | si_pid | child process ID |
si_status | exit value or signal; if si_code is equal to CLD_EXITED, then it is equal to the exit value of the child process, otherwise, it is equal to a signal that caused the child process to change state. | |
si_uid | real user ID of the process that sent the signal | |
SIGPOLL | si_band | band event for POLL_IN, POLL_OUT, or POLL_MSG |
Finally, the following code-specific information is available:
Code | Member | Value |
SI_USER | si_pid | the process ID that sent the signal |
si_uid | real user ID of the process that sent the signal | |
SI_QUEUE | si_value | the value passed to sigqueue(2) system call |
si_pid | the process ID that sent the signal | |
si_uid | real user ID of the process that sent the signal | |
SI_TIMER | si_value | the value passed to timer_create(2) system call |
si_timerid | the timer ID returned by timer_create(2) system call | |
si_overrun | timer overrun count corresponding to the signal | |
si_errno | If timer overrun will be { DELAYTIMER_MAX}, an error code defined in <errno.h> is set | |
SI_ASYNCIO | si_value | the value passed to aio system calls |
SI_MESGQ | si_value | the value passed to mq_notify(2) system call |
si_mqd | the ID of the message queue which generated the signal | |
SI_LWP | si_pid | the process ID that sent the signal |
si_uid | real user ID of the process that sent the signal |
SIGINFO (3) | May 8, 2020 |
Main index | Section 3 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | If you have any trouble sounding condescending, find a Unix user to show you how it's done. | ” |
— Scott Adams |