Разница между методами повышения (SIGABRT) и abort()

Я знаю что оба raise(SIGABRT) а также abort() методы отправят сигнал SIGABRT себе. Но есть некоторая разница между этими двумя функциями. (например - abort() функция разблокирует сигнал SIGABRT где raise(SIGABRT) не.)

Каковы другие различия между raise(SIGABRT) а также abort() методы

1 ответ

Решение

Основное отличие это то, что abort() даже завершает процесс, если SIGABRT игнорируется

Дословно от man abort:

Если сигнал SIGABRT игнорируется или перехватывается возвращаемым обработчиком, функция abort() по- прежнему завершает процесс. Это делается путем восстановления расположения по умолчанию для SIGABRT, а затем повышения сигнала во второй раз.

Другие вопросы по тегам