如何从一个信号中找出进程的pid是在linux中的c++中开始的

How to find out pid of the process from a signal is initiated in c++ in linux?

本文关键字:pid 进程 是在 linux 开始 c++ 中的 一个 信号      更新时间:2023-10-16

我的应用程序使用fork()创建子进程。我在父进程中有一个信号处理程序。在信号处理程序中,我必须为父母和孩子做不同的逻辑。在信号处理程序

case SIGSEGV:
              if (parent)
              {
                  cout<<"signal from parent";
              }
              else
              {
                  cout <<"signal from child";
              }

有可能吗?或者我必须保留两个不同的信号处理程序?

检查signalfd (man signalfd)与selectread的使用情况,因为最后一个将给您signalfd_siginfo结构,它具有

uint32_t ssi_pid;     /* PID of sender */

也许这对你有帮助