如何从信号中找出进程的pid是在linux中的c ++中启动的?

时间:2014-06-10 06:36:08

标签: c++ linux signals fork ipc

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

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

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

1 个答案:

答案 0 :(得分:0)

使用signalfdselect检查readman signalfd)的使用情况,因为这最后会给你signalfd_siginfo结构,

uint32_t ssi_pid;     /* PID of sender */

也许这会对你有帮助。