InnerhalbNach weiteren Dokumenten suchenSupport-Ressourcen | Dieses Buch im PDF-Format herunterladen (1926 KB)
siginfo.h(3HEAD)Name | Synopsis | Description | See Also | Notes Name
Synopsis#include <siginfo.h> DescriptionIf a process is catching a signal, it might request information that tells why the system generated that signal. See sigaction(2). If a process is monitoring its children, it might 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 siginfo_t, which includes the following information: int si_signo /* signal number */ int si_errno /* error number */ int si_code /* signal code */ union sigval si_value /* signal value */ si_signo contains the system-generated signal number. For the waitid(2) function, si_signo is always SIGCHLD. If si_errno is non-zero, it contains an error number associated with this signal, as defined in <errno.h>. si_code contains a code identifying the cause of the signal. If the value of the si_code member is SI_NOINFO, only the si_signo member of siginfo_t is meaningful, and the value of all other members is unspecified. User SignalsIf the value of si_code is less than or equal to 0, then the signal was generated by a user process (see kill(2), _lwp_kill(2), sigqueue(3C), sigsend(2), abort(3C), and raise(3C)) and the siginfo structure contains the following additional information: pid_t si_pid /* sending process ID */ uid_t si_uid /* sending user ID */ ctid_t si_ctid /* sending contract ID */ zoneid_t si_zoneid /* sending zone ID */S If the signal was generated by a user process, the following values are defined for si_code:
si_value contains the application specified value, which is passed to the application's signal-catching function at the time of the signal delivery if si_code is any of SI_QUEUE, SI_TIMER, SI_ASYNCHIO, or SI_MESGQ. System SignalsNon-user generated signals can arise for a number of reasons. For all of these cases, si_code contains a positive value reflecting the reason why the system generated the signal:
Signals can also be generated from the resource control subsystem. Where these signals do not already possess kernel-level siginfo codes, the siginfo si_code will be filled with SI_RCTL to indicate a kernel-generated signal from an established resource control value.
The uncatchable signals SIGSTOP and SIGKILL have undefined siginfo codes. Signals sent with a siginfo code of SI_RCTL contain code-dependent information for kernel-generated signals:
In addition, the following signal-dependent information is available for kernel-generated signals:
See Also_lwp_kill(2), kill(2), setrctl(2), sigaction(2), sigsend(2), waitid(2), abort(3C), aio_read(3C), mq_notify(3C), raise(3C), signal.h(3HEAD), sigqueue(3C), timer_create(3C), timer_settime(3C) NotesFor SIGCHLD signals, if si_code is equal to CLD_EXITED, then si_status 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 implementations, the exact value of si_addr might not be available; in that case, si_addr is guaranteed to be on the same page as the faulting instruction or memory reference. Name | Synopsis | Description | See Also | Notes |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||