如何从一个信号中找出进程的pid是在linux中的c++中开始的
How to find out pid of the process from a signal is initiated in c++ in linux?
我的应用程序使用fork()创建子进程。我在父进程中有一个信号处理程序。在信号处理程序中,我必须为父母和孩子做不同的逻辑。在信号处理程序
case SIGSEGV:
if (parent)
{
cout<<"signal from parent";
}
else
{
cout <<"signal from child";
}
有可能吗?或者我必须保留两个不同的信号处理程序?
检查signalfd
(man signalfd)与select
和read
的使用情况,因为最后一个将给您signalfd_siginfo
结构,它具有
uint32_t ssi_pid; /* PID of sender */
也许这对你有帮助
相关文章:
- boost::进程间消息队列引发错误
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 是否可以通过C++扩展强制多个python进程共享同一内存
- IPC使用多个管道和分支进程来运行Python程序
- 两个进程可以通过跟踪附加到同一个 PID 吗?
- 如何获取进程的整数PID?
- 通过 pid 窗口判断进程是否存在
- 我想获取我在C++中创建的每个进程的 PID,并在特定时间后终止每个进程
- MacOS - 如何使用 C/C++ 获取具有 PID 的进程用户/所有者
- (LINX-IPC 协议)如何确定具有 PID 的进程是否在C++中运行
- 如何在最后一个子 fork() 下打印带有其名称和 pid 的子进程
- 如何在gdb中获取当前调试进程的pid
- 如何在Mac OS上的C/C++/Objective-C中找到SystemUIServer进程的PID
- 如果存在进程,是否保证 kill(pid, 0) 返回 0
- 以编程方式获取与 htop 的相应 pid 匹配的进程的线程 ID
- 如何使用命令行参数创建一个新进程,并将PID提供给父进程
- 如何在C++中从PID中获取进程名称
- 需要当前进程的PID, getpid()返回-1
- 如何从一个信号中找出进程的pid是在linux中的c++中开始的
- 如何从其路径获取进程PID