siginfo(5) siginfo(5)
NAME
siginfo - signal generation information
SYNOPSIS
#include <siginfo.h>
DESCRIPTION
If a process is catching a signal, it may request information that
tells why the system generated that signal [see sigaction(2)]. If a
process is monitoring its children, it may receive information that
tells why a child changed state [see waitid(2)]. In either case, the
system returns the information in a structure of type siginfot, which
includes the following information:
int sisigno /* signal number */
int sierrno /* error number */
int sicode /* signal code */
sisigno contains the system-generated signal number. (For the
waitid(2) function, sisigno is always SIGCHLD.)
If sierrno is non-zero, it contains an error number associated with
this signal, as defined in errno.h.
sicode contains a code identifying the cause of the signal. If the
value of sicode is less than or equal to 0, then the signal was gen-
erated by a user process [see kill(2) and sigsend(2)] and the siginfo
structure contains the following additional information:
pidt sipid /* sending process ID */
uidt siuid /* sending user ID */
Otherwise, sicode contains a signal-specific reason why the signal
was generated, as follows:
Page 1 Reliant UNIX 5.44 Printed 11/98
siginfo(5) siginfo(5)
______________________________________________________________________
| Signal | Code | Reason |
|_________|________________|__________________________________________|
| SIGILL | ILLILLOPC | illegal opcode |
| | ILLILLOPN | illegal operand |
| | ILLILLADR | illegal addressing mode |
| | ILLILLTRP | illegal trap |
| | ILLPRVOPC | privileged opcode |
| | ILLPRVREG | privileged register |
| | ILLCOPROC | coprocessor error |
| | ILLBADSTK | internal stack error |
|_________|________________|__________________________________________|
| SIGFPE | FPEINTDIV | integer divide by zero |
| | FPEINTOVF | integer overflow |
| | FPEFLTDIV | floating point divide by zero |
| | FPEFLTOVF | floating point overflow |
| | FPEFLTUND | floating point underflow |
| | FPEFLTRES | floating point inexact result |
| | FPEFLTINV | invalid floating point operation |
| | FPEFLTSUB | subscript out of range |
|_________|________________|__________________________________________|
| SIGSEGV | SEGVMAPERR | address not mapped to object |
| | SEGVACCERR | invalid permissions for mapped object |
|_________|________________|__________________________________________|
| SIGBUS | BUSADRALN | invalid address alignment |
| | BUSADRERR | non-existent physical address |
| | BUSOBJERR | object specific hardware error |
|_________|________________|__________________________________________|
| SIGTRAP | TRAPBRKPT | process breakpoint |
| | TRAPTRACE | process trace trap |
|_________|________________|__________________________________________|
| SIGCHLD | CLDEXITED | child has exited |
| | CLDKILLED | child was killed |
| | CLDDUMPED | child terminated abnormally |
| | CLDTRAPPED | traced child has trapped |
| | CLDSTOPPED | child has stopped |
| | CLDCONTINUED | stopped child had continued |
|_________|________________|__________________________________________|
| SIGPOLL | POLLIN | data input available |
| | POLLOUT | output buffers available |
| | POLLMSG | input message available |
| | POLLERR | I/O error |
| | POLLPRI | high priority input available |
| | POLLHUP | device disconnected |
|_________|________________|__________________________________________|
Page 2 Reliant UNIX 5.44 Printed 11/98
siginfo(5) siginfo(5)
In addition, the following signal-dependent information is available
for kernel-generated signals:
______________________________________________________________________
| Signal | Field | Value |
|_________|__________________|________________________________________|
| SIGILL | caddrt siaddr | address of faulting instruction |
| SIGFPE | | |
|_________|__________________|________________________________________|
| SIGSEGV | caddrt siaddr | address of faulting memory reference |
| SIGBUS | | |
|_________|__________________|________________________________________|
| SIGCHLD | pidt sipid | child process ID |
| | int sistatus | exit value or signal |
|_________|__________________|________________________________________|
| SIGPOLL | long siband | band event for POLLIN, POLLOUT, or |
| | | POLLMSG |
|_________|__________________|________________________________________|
NOTES
For SIGCHLD signals, if sicode is equal to CLDEXITED, then sistatus
is equal to the exit value of the process; otherwise, it is equal to
the signal that caused the process to change state. For some implemen-
tations, the exact value of siaddr may not be available; in that
case, siaddr is guaranteed to be on the same page as the faulting
instruction or memory reference.
SEE ALSO
sigaction(2), waitid(2), signal(5).
Page 3 Reliant UNIX 5.44 Printed 11/98