Разница между методами raise(SIGABRT) и abort()
Я знаю, что оба метода raise(SIGABRT)
и abort()
отправят сигнал SIGABRT самому себе. Но есть некоторая разница между этими двумя функциями. (например, функция abort()
разблокирует сигнал SIGABRT, где as raise(SIGABRT)
этого не делает.)
Каковы другие различия между raise(SIGABRT)
и abort()
методами
1 ответ:
Главное отличие это то, что
abort()
даже завершает процесс, еслиSIGABRT
игнорируется.Дословно из
man abort
:Если сигнал SIGABRT игнорируется или перехватывается возвращающим обработчиком, функция abort() все равно завершит процесс. Он делает это, восстанавливая диспозицию по умолчанию для SIGABRT и затем поднимая сигнал для a второй раз.