abort(3) Library Functions Manual abort(3)

abort - awaryjnie kończy proces

Standardowa biblioteka C (libc, -lc)

#include <stdlib.h>
[[noreturn]] void abort(void);

Funkcja abort() najpierw odblokowuje sygnał SIGABRT, a następnie wysyła ten sygnał do procesu wywołującego (jakby wywołano raise(3). Skutkuje to nienormalnym zakończeniem procesu, chyba że sygnał SIGABRT został przechwycony i funkcja obsługi tego sygnału nie powraca (patrz longjmp(3)).

Jeśli sygnał SIGABRT jest ignorowany lub przechwytywany przez funkcje obsługi, która powraca, to funkcja abort() zakończy proces. Aby to zrobić, przywróci domyślną procedurę obsługi SIGABRT i ponownie wyśle ten sygnał.

Jak w przypadku innych sytuacji niepoprawnego przerwania, funkcje zarejestrowane za pomocą atexit(3) i on_exit(3) nie są wywoływane.

Funkcja abort() jest funkcją bez powrotu.

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

Interfejs Atrybut Wartość
abort() Bezpieczeństwo wątkowe MT-bezpieczne

C11, POSIX.1-2008.

SVr4, POSIX.1-2001, 4.3BSD, C89.

Do glibc 2.26, jeśli funkcja abort() spowodowała przerwanie procesu, wszystkie otwarte strumienie były zamykane i opróżniane (jak przy fclose(3)). Jednak w niektórych sytuacjach mogło to prowadzić do wzajemnej blokady i utraty danych. Z tego powodu, od glibc 2.27, abort() przerywa procesy bez wypróżniania strumieni. POSIX.1 zezwala na oba te zachowania określając, że abort() „może próbować zachować się jak fclose() na wszystkich otwartych strumieniach”.

gdb(1), sigaction(2), assert(3), exit(3), longjmp(3), raise(3)

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek <alpha@irc.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

2 maja 2024 r. Linux man-pages 6.9.1