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