int si_fd; /* File descriptor */ } 开头的三个字段si_signo,si_errno 和 si_code为所有信号使用(Linux中si_signo不被使用),结构的剩下部分可看作联合体,所以应该只读取对给定信号有意义的字段。POSIX.1b信号和SIGCHLD填写si_pid 和 si_uid两个字段。SIGCHLD信号同时填写si_status, si_utime 和 si_sti...
siginfo_t { int si_signo; /* Signal number */ int si_errno; /* An errno value */ int si_code; /* Signal code */ int si_trapno; /* Trap number that caused hardware-generated signal (unused on most architectures) */ pid_t si_pid; /* Sending process ID */ uid_t si_uid; /...
int si_code; // Signal code int si_trapno; // Trap number that caused hardware-generated signal (unused on most architectures) pid_t si_pid; // Sending process ID uid_t si_uid; // Real user ID of sending process int si_status; // Exit value or signal clock_t si_utime; // U...
si_code:信号代码 si_pid:信号来自于哪一个进程(哪个进程发送来的) si_uid:信号来自于哪个用户(发送来的进程的用户) si_value(重点):传递的信息。应用程序在传递信号时,可以在si_value.sival_int传递一个整型或者si_value.sival_ptr传递一块内存(下面会有一个案例) 若信号...
si_codeが SI_ASYNCIO の場合、si_valueにはアプリケーション指定値が設定されます。その他の場合、si_valueの値は未定義です。 3 番目の引数では、型ucontext_tのオブジェクト が示されます (このオブジェクトの内容の説明については 、<ucontext.h> 組み込みファイルを参照してください)。
typedefstruct{intsi_signo;intsi_errno;intsi_code; union sigval si_value; } siginfo 1. 2. 3. 4. 5. 6. 结构的第四个域同样为一个联合数据结构: union sigval {intsival_int;void*sival_ptr; } 1. 2. 3. 4. 采用联合数据结构,说明siginfo_t结构中的si_value要么持有一个4字节的整数值,要么...
int si_errno; /* errno值,对所有信号有意义*/ int si_code; /* 信号产生的原因,对所有信号有意义*/ int si_trapno; /* Trap number that caused hardware-generated signal (unused on most architectures) */ pid_t si_pid; /* 发送信号的进程ID,对kill(2),实时信号以及SIGCHLD有意义 */ ...
siginfo_t { int si_signo; /* 信号值,对所有信号有意义*/ int si_errno; /* errno值,对所有信号有意义*/ int si_code; /* 信号产生的原因,对所有信号有意义*/ int si_trapno; /* Trap number that caused hardware-generated signal (unused on most architectures) */ pid_t si_pid; /* 发送...
signr)){...do_coredump(&ksig->info);}...do_group_exit(ksig->info.si_signo);}spin_unlock...
siginfo_t { int si_signo; /* Signal number */ int si_errno; /* An errno value */ int si_code; /* Signal code */ pid_t si_pid; /* Sending process ID */ uid_t si_uid; /* Real user ID of sending process */ int si_status; /* Exit value or signal */ clock_t si_u...