Your Browser is not longer supported
Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...
{{viewport.spaceProperty.prod}}
abort - Prozess abbrechen
&pagelevel(4)&pagelevel
Definition | #include <stdlib.h> nicht C11 void abort(void); (Ende) C11 _Noreturn void abort(void); (Ende) |
Beschreibung | Wenn die Funktion mit POSIX-Funktionalität aufgerufen wird, verhält sie sich XPG5-konform, wie folgt: Wenn das Signal SIGABRT nicht abgefangen wird und die Signalbehandlung nicht zurückkehrt, bewirkt abort() eine anormale Prozessbeendigung: Das Signal SIGABRT wird an den aufrufenden Prozess gesendet, als ob raise() mit SIGABRT aufgerufen worden wäre. Vor dem Prozessabbruch werden offene Datenströme und Meldungska- talog-Deskriptoren geschlossen, als ob fclose() aufgerufen worden wäre. Anschließend werden die für SIGABRT voreingestellten Signalaktionen durchgeführt (siehe signal.h). Der Status, den abort() an die Funktionen wait() oder waitpid() liefert, ist der eines Prozesses, der durch das Signal SIGABRT beendet wurde. Wenn das Signal SIGABRT blockiert oder ignoriert wird, setzt sich abort() darüber hinweg. Prozessendefunktionen, die mit atexit() bzw. at_quick_exit() registriert wurden, werden nicht aufgerufen.
Werden Threads verwendet, so wirkt sich die Funktion auf den Prozess oder auf einen Thread wie folgt aus: Abbrechen des Prozesses und damit aller seiner Threads. BS2000 Wenn die Funktion mit BS2000-Funktionalität aufgerufen wird, verhält sie sich abweichend, wie folgt: Wenn das Programm keine Signalbehandlungsfunktion vorsieht oder wenn eine solche Funktion zur Unterbrechungsstelle zurückkehrt, wird der Prozess mit _exit(-1) abgebrochen.(Ende)
|
Hinweise | Das Abfangen des Signals ist deshalb vorgesehen, damit der Anwendungsprogrammierer einen Prozess mit portablen Mitteln abbrechen kann. Damit ist er unabhängig von störenden Einflüssen proprietärer Bibliotheksfunktionen. Wenn SIGABRT weder abgefangen noch ignoriert wird und das aktuelle Dateiverzeichnis das Schreibrecht hat, kann auch ein Speicherabzug erzeugt werden. |
Siehe auch atexit()
, exit()
, kill()
, raise()
, signal()
, stdlib.h
, Abschnitt "Signale“