确定终止的子进程未捕获哪个信号
|
我有一个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
没有找到相关结果
已邀请:
1 个回复
抬澈帅沮
task.terminationStatus是您所需要的,它是https://www.tutorialspoint.com/unix/unix-signals-traps.htm信号之一的代码