SIGABRT
SIGABRT | |
---|---|
Описание |
Сигнал аварийного завершения используемый abort() |
По умолчанию | завершение с дампом памяти |
Коды SA_SIGINFO | |
Не имеет специфических кодов |
SIGABRT (от англ. signal и abort) — сигнал, используемый в POSIX-системах, посылаемый процессом самому себе при выполнении функции abort()
для аварийной остановки с выполнением дампа памяти в случае невозможности дальнейшего продолжения программы.
Определён как целочисленная константа в заголовочном файле signal.h
. В Linux используется сигнал-синоним — SIGIOT (от англ. I/O transfer trap — ловушка ввода-вывода).
Функция abort()
, посылающая этот сигнал самому процессу, определена в libc с прототипом в stdlib.h. Сигнал может быть перехвачен или проигнорирован, но abort()
принудительно завершит программу (предварительно сбросив и закрыв стандартные потоки и сделав дамп памяти программы), даже если этого не сделает обработчик сигнала. Таким образом функция abort()
гарантирует завершение программы, почему она часто используется библиотеками в аварийных ситуациях — когда выполнение не должно быть продолжено, но основная программа должна иметь возможность выполнить действия, необходимые перед аварийным завершением.
Также SIGABRT вызывается утверждениями (средство отладки Си — макроопределение assert()
вызывает abort()
, если утверждение переданное в качестве аргумента ложно).
В статье не хватает ссылок на источники (см. рекомендации по поиску). |