为特定信号注册信号处理程序是否会覆盖另一个注册信号?

时间:2011-09-09 02:54:51

标签: objective-c signals

如果我们注册如下信号,这会覆盖另一个注册信号处理程序,那最后一个获胜吗?如果是这样,是否有办法允许每个信号超过1。

signal(SIGABRT, SignalHandler);

1 个答案:

答案 0 :(得分:1)

都能跟得上;每个信号只能有一个信号处理程序。

另请注意,尝试在信号处理程序中执行任何操作都是不可能的。你不能进行任何系统调用,不能真正分配内存,也不能使用Objective-C。

同样,试图抓住SIGABRT是徒劳的。到发送时,它表明您的应用程序很好地进入了杂草。试图从这种状态中恢复过来充满了脆弱。

你想做什么?