SIGABRT | это... Что такое SIGABRT? (original) (raw)
SIGABRT
Описание: | Сигнал аварийного завершения используемый abort() |
---|---|
По умолчанию: | завершение с дампом памяти |
коды SA_SIGINFO | |
(не имеет специфических кодов) |
В POSIX-системах, SIGABRT — сигнал, посылаемый процессом самому себе при выполнении функции abort()
, для аварийного останова, в случае невозможности дальнейшего продолжения программы.
SIGABRT — целочисленная константа, определенная в заголовочном файле signal.h
. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.
В GNU/Linux, также есть сигнал SIGIOT который является синонимом SIGABRT.
Этимология
SIG — общий префикс сигналов, АBRT — сокращенное написание англ. abort — преждевременное прекращение, прерывание (английский компьютерный жаргон). IOT аббревиатура англ. I/O transfer Trap — ловушка ввода-вывода (также IOT является мнемоникой инструкции PDP-8 аббревиатура I/O Transfer)
Использование
Сигнал SIGABRT процесс посылает сам себе, когда вызывает функцию abort()
(функция libc, с прототипом в stdlib.h). Сигнал SIGABRT может быть перехвачен или проигнорирован, но abort()
принудительно завершит программу (предварительно сбросив и закрыв стандартные потоки и сделав дамп памяти программы) даже если этого не сделает обработчик сигнала. Таким образом функция abort()
гарантирует завершение программы, почему она часто используется библиотеками в аварийных ситуациях — когда выполнение не должно быть продолжено, но основная программа должна иметь возможность выполнить действия, необходимые перед аварийным завершением.
Также SIGABRT вызвается утверждениями (англ. assertions; средство отладки Си — макроопределение assert()
вызывает abort()
если утверждение переданное в качестве аргумента ложно).
В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.Эта отметка установлена 12 мая 2011. |
---|