SIGABRT

З пляцоўкі Вікіпедыя
Jump to navigation Jump to search
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() калі сцвярджэнне перададзенае ў якасці аргумента ілжыва).

Сігналы 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