Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between raise(SIGABRT) and abort() methods

Tags:

c++

c

posix

sigabrt

I know that both raise(SIGABRT) and abort() methods will send a SIGABRT signal to itself. But there are some difference between those 2 functions. (e.g - abort() function unblocks the SIGABRT signal where as raise(SIGABRT) does not.)

What are the other differences between raise(SIGABRT) and abort() methods

like image 954
SRF Avatar asked Nov 26 '13 09:11

SRF


1 Answers

The main difference it that abort() even ends the process if SIGABRT is ignored.

Verbatim from man abort:

If the SIGABRT signal is ignored, or caught by a handler that returns, the abort() function will still terminate the process. It does this by restoring the default disposition for SIGABRT and then raising the signal for a second time.

like image 80
alk Avatar answered Sep 21 '22 03:09

alk