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