Freigeben über


abort

Bricht den aktuellen Prozess ab und gibt einen Fehlercode zurück.

Hinweis

Verwenden Sie diese Methode nicht, um eine Windows Store-App zu schließen, außer bei Tests oder in Debugszenarios.Programmgesteuerte oder UI-Methoden zum Schließen einer Windows Store-App sind gemäß den Zertifizierungsanforderungen für Windows 8-Apps nicht zulässig.Weitere Informationen finden Sie unter Anwendungslebenszyklus (Windows Store-Apps).

void abort( void );

Rückgabewert

abortgibt an den aufrufenden Prozess keine Steuerung zurück. Standardmäßig sucht es nach einem Abbruchsignalhandler und löst SIGABRT aus, sofern vorhanden. Anschließend beendet abort den aktuellen Prozess und gibt den Exitcode an den übergeordneten Prozess zurück.

Hinweise

Microsoft-spezifisch

Standardmäßig zeigt die abort-Routine eine Fehlermeldung an, bevor SIGABRT ausgelöst wird, wenn eine App mit der Debuglaufzeitbibliothek erstellt wird. Bei Konsolen-Apps, die im Konsolenmodus ausgeführt werden, wird die Meldung an STDERR gesendet. Bei Windows-Desktop-Apps und Konsolen-Apps, die im Fenstermodus ausgeführt werden, wird die Meldung in einem Meldungsfeld angezeigt. Zum Unterdrücken der Meldung verwenden Sie _set_abort_behavior, um das _WRITE_ABORT_MSG-Flag zu löschen. Die Meldung, die angezeigt wird, hängt von der Version der verwendeten Laufzeitumgebung ab. Bei Anwendungen, die mit der neuesten Version von Visual C++ erstellt wurden, sieht die Meldung wie folgt aus:

R6010

- abort() has been called

In früheren Versionen der C-Laufzeitbibliothek wurde diese Meldung angezeigt:

"This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."

Wenn das Programm im Debugmodus kompiliert wird, zeigt das Meldungsfeld Optionen zum Abbrechen, Wiederholen oder Ignorieren an. Wenn der Benutzer Abbrechen auswählt, wird das Programm sofort beendet und gibt einen Exitcode von 3 zurück. Wenn der Benutzer Wiederholen auswählt, wird ein Debugger für Just-In-Time-Debuggen aufgerufen, falls verfügbar. Wenn der Benutzer Ignorieren auswählt, fährt abort mit der normalen Verarbeitung fort.

In Verkaufsversionen und Debugbuilds überprüft abort dann, ob ein Abbruchsignalhandler festgelegt ist. Wenn ein nicht standardmäßiger Signalhandler festgelegt ist, ruft abort raise(SIGABRT) auf. Verwenden Sie die Funktion Signal, um eine Abbruchsignalhandler-Funktion zum SIGABRT-Signal zuzuordnen. Sie können benutzerdefinierte Aktionen wie das Bereinigen von Logressourcen oder Loginformationen ausführen und die App mit Ihrem eigenen Fehlercode in der Handlerfunktion beenden. Wenn kein benutzerdefinierter Signalhandler definiert ist, löst abort nicht das SIGABRT-Signal aus.

In nicht Debugbuilds von Desktop- oder Konsolen-Apps ruft abort dann standardmäßig den Windows-Fehlerbericht (Dr. Watson) auf, um fehlgeschlagene Operationen an Microsoft zu melden. Dieses Verhalten kann aktiviert oder deaktiviert werden, indem _set_abort_behavior aufgerufen und das _CALL_REPORTFAULT-Flag festlegt oder maskiert wird. Wenn das Flag festgelegt ist, zeigt Windows ein Meldungsfeld mit einem Text an, der in etwa wie folgt lautet: Ein Problem hat dazu geführt, dass das Programm gestoppt wurde oder nicht mehr ordnungsgemäß ausgeführt wird. Der Benutzer kann dann entweder einen Debugger über die Schaltfläche Debuggen aufrufen oder die Schaltfläche Programm schließen auswählen, um die App mit einem vom Betriebssystem definierten Fehlercode beenden.

Wenn der Windows-Fehlerberichtshandler nicht aufgerufen wird, ruft abort _exit auf, um den Prozess mit Exitcode 3 zu beenden. Darüber hinaus wird die Steuerung an den übergeordneten Prozess oder das Betriebssystem zurückgegeben. Von _exit werden weder Streampuffer geleert noch eine atexit/_onexit-Verarbeitung ausgeführt.

Weitere Informationen zum CRT-Debuggen finden Sie unter CRT-Debugverfahren.

Ende Microsoft-spezifisch

Anforderungen

Routine

Erforderlicher Header

abort

<process.h> oder <stdlib.h>

Beispiel

Das folgende Programm versucht, eine Datei zu öffnen und bricht den Vorgang ab, wenn der Versuch fehlschlägt.

// crt_abort.c
// compile with: /TC
// This program demonstrates the use of
// the abort function by attempting to open a file
// and aborts if the attempt fails.

#include  <stdio.h>
#include  <stdlib.h>

int main( void )
{
    FILE    *stream = NULL;
    errno_t err = 0;

    err = fopen_s(&stream, "NOSUCHF.ILE", "r" );
    if ((err != 0) || (stream == NULL))
    {
        perror( "File could not be opened" );
        abort();
    }
    else
    {
        fclose( stream );
    }
}
  

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Verwenden von "abort"

abort-Funktion (C)

Prozess- und Umgebungssteuerung

_exec- und _wexec-Funktionen

exit, _exit

raise

signal

_spawn- und _wspawn-Funktionen

_DEBUG

_set_abort_behavior