Scroll to navigation

abort(3) Library Functions Manual abort(3)

BEZEICHNUNG

abort - Auslösen anormaler Prozessbeendigung

BIBLIOTHEK

Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

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

BESCHREIBUNG

Die Funktion abort() hebt zuerst die Blockierung des Signals SIGABRT auf und löst das Signal dann für den aufrufenden Prozess aus (als ob raise(3) aufgerufen worden wäre). Dies führt zur anormalen Prozessbeendigung, außer wenn das Signal SIGABRT abgefangen wird und der Signal-Handhaber nicht zurückkehrt (siehe longjmp(3)).

Falls das Signal SIGABRT ignoriert oder vom Handhaber der zurückkehrt abgefangen wird, wird die Funktion abort() weiterhin den Prozess beenden. Es erledigt dies, indem es die Standard-Disposition für SIGABRT wieder herstellt und dann das Signal erneut auslöst.

Wie bei anderen Fälle anomaler Beendigung werden die mit atexit(3) und on_exit(3) registrierten Funktionen nicht aufgerufen.

RÜCKGABEWERT

Die Funktion abort() kehrt niemals zurück.

ATTRIBUTE

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

Schnittstelle Attribut Wert
abort() Multithread-Fähigkeit MT-Sicher

STANDARDS

C11, POSIX.1-2008.

GESCHICHTE

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

Bis einschließlich Glibc 2.26 wurden alle offenen Datenströme geschlossen und rausgeschrieben (wie mit fclose(3)), falls die Funktion abort() zur Prozessbeendigung führte. Dies konnte allerdings in einigen Fällen zu Verklemmungen und Datenbeschädigungen führen. Daher beendet abort() seit Glibc 2.27 den Prozess ohne die Datenströme rauszuschreiben. POSIX.1 erlaubt beide möglichen Verhaltensweisen und teilt mit, dass abort() »alle Versuche unternehmen darf, fclose() auf allen offenen Datenströmen durchzuführen«.

SIEHE AUCH

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

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

2. Mai 2024 Linux man-pages (unveröffentlicht)