raise(SIGABRT) 和 abort() 方法之间的区别

SRF*_*SRF 7 c c++ posix sigabrt

我知道raise(SIGABRT)abort()方法都会向自己发送一个 SIGABRT 信号。但是这两个功能之间存在一些差异。(例如 -abort()函数解除对 SIGABRT 信号的阻塞,而raise(SIGABRT)没有。)

raise(SIGABRT)abort()方法之间的其他区别是什么

alk*_*alk 7

主要区别是它abort()甚至结束进程 ifSIGABRT被忽略。

逐字来自man abort

如果SIGABRT信号被忽略,或被返回的处理程序捕获,abort()函数仍将终止进程。它通过恢复SIGABRT的默认配置然后第二次提高信号来实现这一点。