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

回到顶部