SIGABRT
Материал из Википедии — свободной энциклопедии
Описание: | Сигнал аварийного завершения используемый abort() |
---|---|
По умолчанию: | завершение с дампом памяти |
коды SA_SIGINFO | |
(не имеет специфических кодов) |
В POSIX-системах, SIGABRT — сигнал, посылаемый процессом самому себе при выполнении функции abort()
, для аварийного останова, в случае невозможности дальнейшего продолжения программы.
SIGABRT — целочисленная константа, определенная в заголовочном файле signal.h
. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.
В Linux, также есть сигнал SIGIOT который является синонимом SIGABRT.
[править] Этимология
SIG — общий префикс сигналов, АBTR — сокращенное написание англ. abort — преждевременное прекращение, прерывание (английский компьютерный жаргон). IOT аббревиатура англ. I/O transfer Trap — ловушка ввода-вывода (также IOT является мнемоникой инструкции PDP-8 аббревиатура I/O Transfer)
[править] Использование
Сигнал SIGABRT процесс посылает сам себе, когда вызывает функцию abort()
(функция libc, с прототипом в stdlib.h). Сигнал SIGABRT может быть перехвачен или проигнорирован, но abort()
принудительно завершит программу (предварительно сбросив и закрыв стандартные потоки и сделав дамп памяти программы) даже если этого не сделает обработчик сигнала. Таким образом функция abort()
гарантирует завершение программы, почему она часто используется библиотеками в аварийных ситуациях — когда выполнение не должно быть продолжено, но основная программа должна иметь возможность выполнить действия, необходимые перед аварийным завершением.
Также SIGABRT вызвается утверждениями (англ. assertions; средство отладки Си — макроопределение assert()
вызывает abort()
если утверждение переданное в качестве аргумента ложно).
Сигналы POSIX |
SIGABRT | SIGALRM | SIGFPE | SIGHUP | SIGILL | SIGINT | SIGKILL | SIGPIPE | SIGQUIT | SIGSEGV | SIGTERM | SIGUSR1 | SIGUSR2 | SIGCHLD | SIGCONT | SIGSTOP | SIGTSTP | SIGTTIN | SIGTTOU | SIGBUS | SIGPOLL | SIGPROF | SIGSYS | SIGTRAP | SIGURG | SIGVTALRM | SIGXCPU | SIGXFSZ |
Сигналы реального времени (определяемые пользователем) — SIGRTMIN - SIGRTMAX. |
Некоторые сигналы не включенные в POSIX и синонимы |
SIGIOT | SIGEMT | SIGSTKFLT | SIGIO | SIGCLD | SIGPWR (SIGINFO) | SIGLOST | SIGWINCH | SIGUNUSED |