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