abortabort

Interrompe il processo corrente e restituisce un codice di errore.Aborts the current process and returns an error code.

Nota

Non utilizzare questo metodo per arrestare un'app di Microsoft Store o Windows piattaforma UWP (Universal), ad eccezione di testing o scenari di debug.Do not use this method to shut down a Microsoft Store app or Universal Windows Platform (UWP) app, except in testing or debugging scenarios. Modalità a livello di codice o dell'interfaccia utente per chiudere un'app di Store non sono consentiti in base al criteri di Microsoft Store.Programmatic or UI ways to close a Store app are not permitted according to the Microsoft Store policies. Per ulteriori informazioni, vedere ciclo di vita app UWP.For more information, see UWP app lifecycle.

SintassiSyntax

void abort( void );

Valore restituitoReturn Value

abort non restituisce il controllo al processo chiamante.abort does not return control to the calling process. Per impostazione predefinita, cerca un gestore di segnale di interruzione e genera SIGABRT se ne è stato impostato uno.By default, it checks for an abort signal handler and raises SIGABRT if one is set. Quindi abort termina il processo corrente e restituisce un codice di uscita al processo padre.Then abort terminates the current process and returns an exit code to the parent process.

NoteRemarks

Sezione specifica MicrosoftMicrosoft Specific

Per impostazione predefinita, quando un'app viene compilata con la libreria di runtime di debug, la routine abort visualizza un messaggio di errore prima che venga generato SIGABRT.By default, when an app is built with the debug runtime library, the abort routine displays an error message before SIGABRT is raised. Per le app della console eseguite in modalità console, il messaggio viene inviato a STDERR.For console apps running in console mode, the message is sent to STDERR. Le app desktop e le app console di Windows eseguite in modalità finestra visualizzano il messaggio in una finestra di messaggio.Windows desktop apps and console apps running in windowed mode display the message in a message box. Per eliminare il messaggio, usare _set_abort_behavior per cancellare il flag _WRITE_ABORT_MSG.To suppress the message, use _set_abort_behavior to clear the _WRITE_ABORT_MSG flag. Il messaggio visualizzato varia a seconda della versione dell'ambiente di runtime usato.The message displayed depends on the version of the runtime environment used. Per le applicazioni compilate utilizzando le versioni più recenti di Visual C++, il messaggio è simile a questo:For applications built by using the most recent versions of Visual C++, the message resembles this:

R6010 - è stato chiamato Abort)R6010 - abort() has been called

Nelle versioni precedenti della libreria di runtime C, veniva visualizzato il messaggio seguente:In previous versions of the C runtime library, this message was displayed:

Questa applicazione ha richiesto al Runtime di terminarlo in modo anomalo.This application has requested the Runtime to terminate it in an unusual way. Per altre informazioni, contattare il team di supporto dell'applicazione.Please contact the application's support team for more information.

Quando il programma viene compilato in modalità debug, la finestra di messaggio visualizza le opzioni Interrompi, Riprova o Ignora.When the program is compiled in debug mode, the message box displays options to Abort, Retry, or Ignore. Se l'utente sceglie Interrompi, il programma viene immediatamente terminato e viene restituito un codice di uscita 3.If the user chooses Abort, the program terminates immediately and returns an exit code of 3. Se l'utente sceglie Riprova, viene richiamato un debugger per il debug JIT, se disponibile.If the user chooses Retry, a debugger is invoked for just-in-time debugging, if available. Se l'utente sceglie Ignora, abort continua l'elaborazione normale.If the user chooses Ignore, abort continues normal processing.

Nelle build di distribuzione e di debug, abort verifica quindi se è stato impostato un gestore di segnale di interruzione.In both retail and debug builds, abort then checks whether an abort signal handler is set. Se è impostato un gestore di segnale non predefinito, abort chiama raise(SIGABRT).If a non-default signal handler is set, abort calls raise(SIGABRT). Usare la funzione signal per associare un gestore di segnale di interruzione al segnale SIGABRT.Use the signal function to associate an abort signal handler function with the SIGABRT signal. È possibile eseguire azioni personalizzate, ad esempio pulire le risorse o le informazioni di registro, e terminare l'app con il proprio codice di errore nella funzione del gestore.You can perform custom actions—for example, clean up resources or log information—and terminate the app with your own error code in the handler function. Se non viene definito alcun gestore di segnale personalizzato, abort non genera il segnale SIGABRT.If no custom signal handler is defined, abort does not raise the SIGABRT signal.

Per impostazione predefinita, nelle compilazioni non di debug delle App desktop o della console, abort richiama quindi il meccanismo di servizio di segnalazione errori Windows (precedentemente noto come ripristino di emergenza. Watson) per segnalare gli errori a Microsoft.By default, in non-debug builds of desktop or console apps, abort then invokes the Windows Error Reporting Service mechanism (formerly known as Dr. Watson) to report failures to Microsoft. Questo comportamento può essere abilitato o disabilitato chiamando _set_abort_behavior e impostando o eseguendo il mascheramento del flag _CALL_REPORTFAULT.This behavior can be enabled or disabled by calling _set_abort_behavior and setting or masking the _CALL_REPORTFAULT flag. Quando il flag è impostato, Windows visualizza una finestra di messaggio contenente un testo simile a "Si è verificato un problema che impedisce il funzionamento corretto del programma".When the flag is set, Windows displays a message box that has text something like "A problem caused the program to stop working correctly." L'utente può scegliere di richiamare un debugger con un pulsante Debug oppure scegliere il pulsante Chiudi programma per terminare l'app con un codice di errore definito dal sistema operativo.The user can choose to invoke a debugger with a Debug button, or choose the Close program button to terminate the app with an error code that's defined by the operating system.

Se il gestore di segnalazione degli errori di Windows non viene richiamato, abort chiama _exit per terminare il processo con codice di uscita 3 e restituisce il controllo al processo padre o al sistema operativo.If the Windows error reporting handler is not invoked, then abort calls _exit to terminate the process with exit code 3 and returns control to the parent process or the operating system. _exit non scarica i buffer di flusso e non esegue l'elaborazione atexit/_onexit._exit does not flush stream buffers or do atexit/_onexit processing.

Per altre informazioni sul debug CRT, vedere CRT Debugging Techniques (Tecniche di debug CRT).For more information about CRT debugging, see CRT Debugging Techniques.

Fine sezione specifica MicrosoftEnd Microsoft Specific

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
abort <process.h> o <stdlib.h><process.h> or <stdlib.h>

EsempioExample

Il programma seguente tenta di aprire un file e viene interrotto se il tentativo non riesce.The following program tries to open a file and aborts if the attempt fails.

// 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 );
    }
}
File could not be opened: No such file or directory

Vedere ancheSee also

Uso di abortUsing abort
Funzione abortabort Function
Controllo di processi e ambienteProcess and Environment Control
Funzioni _exec, _wexec_exec, _wexec Functions
exit, _Exit, _exitexit, _Exit, _exit
raiseraise
signalsignal
Funzioni _spawn, _wspawn_spawn, _wspawn Functions
_DEBUG_DEBUG
_set_abort_behavior_set_abort_behavior