table of contents
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) |