Scroll to navigation

abort(3) Library Functions Manual abort(3)

NAZWA

abort - awaryjnie kończy proces

BIBLIOTEKA

Standardowa biblioteka C (libc, -lc)

SKŁADNIA

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

OPIS

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.

WARTOŚĆ ZWRACANA

Funkcja abort() jest funkcją bez powrotu.

ATRYBUTY

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

STANDARDY

C11, POSIX.1-2008.

HISTORIA

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”.

ZOBACZ TAKŻE

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

TŁUMACZENIE

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 (niewydane)