Linux C:接收到信号后,是否可以知道发送者的PID?
假设我的C程序处理SIGUSR1。当它接收到信号时,是否可以知道是谁发送的?即 得到那个过程的pid?
回答:
是的,如果您使用sigaction调用而不是来设置信号处理程序signal。这样做可以让您设置一个带有三个参数的信号处理程序:
- An 
int,代表信号编号(就像signal) - A 
siginfo_t *是一种结构,其中包含有关信号源的各种信息,包括发送方的pid(如果适用)。(其中还包括有关自动信号之类的信号原因的信息SIGSEGV。) - A 
ucontext_t *,与哪个线程获得信号有关。大多是可忽略的。 
以上是 Linux C:接收到信号后,是否可以知道发送者的PID? 的全部内容, 来源链接: utcz.com/qa/414449.html
