raise(SIGABRT)和abort()方法之间的区别
我知道raise(SIGABRT)
和abort()
方法都会向自己发送SIGABRT信号。 但这两个function之间存在一些差异。 (例如 – abort()
函数解除SIGABRT信号的阻塞,而raise(SIGABRT)
则不会。)
raise(SIGABRT)
和abort()
方法之间的其他区别是什么?
如果忽略SIGABRT
, abort()
的主要区别甚至会结束进程。
从man abort
逐字:
如果SIGABRT信号被忽略,或被返回的处理程序捕获,则abort()函数仍将终止该进程。 它通过恢复SIGABRT的默认处置然后再次提升信号来实现此目的。