如何在Linux中用C++启动进程中的PID信号?
我的应用程序使用fork创建子进程。我在父进程中有一个信号处理程序。在信号处理器中,我必须为父级和子级执行不同的逻辑。 信号处理器中的ie如何在Linux中用C++启动进程中的PID信号?,c++,linux,signals,fork,ipc,C++,Linux,Signals,Fork,Ipc,我的应用程序使用fork创建子进程。我在父进程中有一个信号处理程序。在信号处理器中,我必须为父级和子级执行不同的逻辑。 信号处理器中的ie case SIGSEGV: if (parent) { cout<<"signal from parent"; } else { cou
case SIGSEGV:
if (parent)
{
cout<<"signal from parent";
}
else
{
cout <<"signal from child";
}
可能吗?或者我必须保留两个不同的信号处理程序?使用select和read检查signalfd的用法,因为最后一个将为您提供signalfd\u siginfo结构,它具有
uint32_t ssi_pid; /* PID of sender */
也许这会对您有所帮助。信号总是发送到目标流程。SIGSEGV始终从进程内部生成,除非您从外部向进程触发它们,这在SIGSEGV的情况下是不推荐的。不知道有任何此类来源信息可用。