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