我有一个正在处理信号SIGCHLD
的父进程。
如果我在子进程中调用 abort()
,则会在子进程中引发 SIGABRT
信号。
我的问题是,子进程核心转储时,是否会向父进程发送SIGCHLD
信号?
最佳答案
一旦子进程死亡,SIGCHLD 信号总是由操作系统(至少是 unixoid)发送到您的进程 - 无论它因何种原因死亡(由于 SIGABRT 或 SIGSEGV,定期终止)通过调用 exit 或简单地离开 main,...)。
您可以在提供给 wait 系列函数的状态变量中获取有关子级发生的情况的一些信息,这是您可以找到的一个小示例,例如: G。 here .
关于c - 中止系统调用行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44127129/