确定终止的子进程未捕获哪个信号

| 我有一个Mac OS X应用程序(Cocoa),它产生了一个C ++控制台帮助程序应用程序来做一些工作。 GUI通过NSTask生成帮助程序,它们通过命名管道相互通信。一切都很好。 如果助手应用程序死了,则GUI会获取NSTaskDidTerminateNotification,并可以调用终止原因来确定助手程序是正常退出还是被杀死(NSTaskTerminationReasonUncaughtSignal)。但是,是否有任何方法可以准确确定未捕获到的信号?我想知道是SIGBUS还是SIGABRT。 这可能吗? NSTask似乎没有此功能,但是也许有一些UNIX-y伏都教? 更新: Terminal.app当然知道。例如:
$ cat >crash.c
int main( void ) {
    int *crashy = 0;
    *crashy = 0xdeadbeef;
    return 0;
}
^C
$ clang crash.c
$ ./a.out 
Segmentation fault
    
已邀请:
        只需要退出代码
NSTask* task = ...
[task waitUntilExit];
task.terminationStatus是您所需要的,它是https://www.tutorialspoint.com/unix/unix-signals-traps.htm信号之一的代码     

要回复问题请先登录注册