table of contents
ABORT(3) | Руководство программиста Linux | ABORT(3) |
ИМЯ¶
abort - аварийно завершает процесс
СИНТАКСИС¶
#include <stdlib.h>
void abort(void);
ОПИСАНИЕ¶
Сначала функция abort() разблокирует сигнал SIGABRT, а затем генерирует этот сигнал для вызывающего процесса (как если бы была вызвана raise(3)). Это приводит к аварийному завершению процесса, если сигнал SIGABRT не обрабатывается и обработчик сигнала не возвращает управление (смотрите longjmp(3)).
Если сигнал SIGABRT игнорируется или обрабатывается обработчиком, который возвращает управление, то функция abort() всё равно завершит процесс. Она восстанавливает обработчик SIGABRT по умолчанию, а затем генерирует сигнал повторно.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
Функция abort() никогда не возвращает управление.
АТРИБУТЫ¶
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение |
abort() | Безвредность в нитях | MT-Safe |
ЗАМЕЧАНИЯ¶
Вплоть до glibc 2.26, если функция abort() вызывала завершение процесса, то все открытые потоки закрывались и сбрасывались на диск (как при fclose(3)). Однако, в некоторых случаях это могло приводить к взаимным блокировкам и повреждению данных. Поэтому, начиная с glibc 2.27, abort() завершает процесс не сбрасывая потоки на диск. В POSIX.1 разрешено и такое поведение, там указано, что abort() «может выполнить попытку отработать как fclose() на все открытые потоки».
СООТВЕТСТВИЕ СТАНДАРТАМ¶
SVr4, POSIX.1-2001, POSIX.1-2008, 4.3BSD, C89, C99.
СМ. ТАКЖЕ¶
gdb(1), sigaction(2), assert(3), exit(3), longjmp(3), raise(3)
ЗАМЕЧАНИЯ¶
Эта страница является частью проекта Linux man-pages версии 4.16. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.
ПЕРЕВОД¶
Русский перевод этой страницы руководства был сделан Dmitry Bolkhovskikh <d20052005@yandex.ru> и Yuri Kozlov <yuray@komyakino.ru>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
26 ноября 2017 г. | GNU |