abort(3)

НАИМЕНОВАНИЕ
abort - аварийно завершает процесс

БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)

ОБЗОР
#include <stdlib.h>

[[noreturn]] void abort(void);

ОПИСАНИЕ
The abort() function first unblocks the SIGABRT signal, and then raises that signal for the calling process (as though raise(3) was called). This results in the abnormal termination of the process unless the SIGABRT signal is caught and the signal handler does not return (see longjmp(3)).

Если сигнал SIGABRT игнорируется или обрабатывается обработчиком, который возвращает управление, то функция abort() всё равно завершит процесс. Она восстанавливает обработчик SIGABRT по умолчанию, а затем генерирует сигнал повторно.

As with other cases of abnormal termination the functions registered with atexit(3) and on_exit(3) are not called.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция abort() никогда не возвращает управление.

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
abort() | Безвредность в нитях | MT-Safe

СТАНДАРТЫ
C11, POSIX.1-2008.

ИСТОРИЯ
SVr4, POSIX.1-2001, 4.3BSD, C89.

Вплоть до glibc 2.26, если функция abort() вызывала завершение процесса, то все открытые потоки закрывались и сбрасывались на диск (как при fclose(3)). Однако, в некоторых случаях это могло приводить к взаимным блокировкам и повреждению данных. Поэтому, начиная с glibc 2.27, abort() завершает процесс не сбрасывая потоки на диск. В POSIX.1 разрешено и такое поведение, там указано, что abort() «может выполнить попытку отработать как fclose() на все открытые потоки».

СМОТРИТЕ ТАКЖЕ
gdb(1), sigaction(2), assert(3), exit(3), longjmp(3), raise(3)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Dmitry Bolkhovskikh <d20052005@yandex.ru> и Yuri Kozlov <yuray@komyakino.ru>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).