int si_fd; /* File descriptor */ } 开头的三个字段si_signo,si_errno 和 si_code为所有信号使用(Linux中si_signo不被使用),结构的剩下部分可看作联合体,所以应该只读取对给定信号有意义的字段。POSIX.1b信号和SIGCHLD填写si_pid 和 si_uid两个字段。SIGCHLD信号同时填写
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...
int sig_code; //附加信息(取决于信号) pid_t si_pid; //发送信号的进程ID uid_t sig_uid; //发送信号的进程真实用户ID void *si_addr; //产生错误的地址 int si_status; //退出值或者信号值 long si_band; //SIGPOLL的band号 //可能还会有其他的值。 } 实践: [cpp] view plain co...
si_code:信号代码 si_pid:信号来自于哪一个进程(哪个进程发送来的) si_uid:信号来自于哪个用户(发送来的进程的用户) si_value(重点):传递的信息。应用程序在传递信号时,可以在si_value.sival_int传递一个整型或者si_value.sival_ptr传递一块内存(下面会有一个案例) ...
si_pid 如果si_code的值小于或等于零,那么此成员将指示此信号的发送方的进程标识。 否则,此成员无意义。 Si_uid 如果si_code的值小于或等于零,那么此成员将指示此信号的发送方的实际用户标识。 否则,此成员无意义。 si_value 如果si_code是 SI_ASYNCIO ,那么si_value包含应用程序指定的值。 否则,将取消定义...
#include <stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<errno.h>#include<sys/types.h>#include<sys/wait.h>#include<signal.h>/*siginfo_t { int si_signo; // Signal number int si_errno; // An errno value int si_code; // Signal code int si_trapno; // ...
为所有信号定义si_signo、si_errno和si_code。(si_errno通常在Linux上不使用。)结构体的其余部分可能...
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; /* 发送...
si_signo システム生成シグナル番号を含みます。 si_errno インプリメンテーション特定エラー情報を含みます (このインプリメンテーションでは使用されません)。 si_code シグナルの原因を識別するコードを含みます (これらのコードのリストについては、<signal.h> 組み込みファイルを、...