Partage via


_set_abort_behavior

Spécifie l’action à entreprendre quand un programme s’arrête anormalement.

Remarque

N’utilisez pas la abort fonction pour arrêter une application du Microsoft Store, sauf dans les scénarios de test ou de débogage. Les méthodes programmatiques ou d’interface utilisateur pour fermer une application Store ne sont pas autorisées en fonction des stratégies du Microsoft Store. Pour plus d’informations, consultez le cycle de vie des applications UWP.

Syntaxe

unsigned int _set_abort_behavior(
   unsigned int flags,
   unsigned int mask
);

Paramètres

flags
Nouvelle valeur des indicateurs abort.

mask
Masque pour les bits d’indicateurs abort à définir.

Valeur retournée

Ancienne valeur des indicateurs.

Notes

Il existe deux indicateurs abort : _WRITE_ABORT_MSG et _CALL_REPORTFAULT. _WRITE_ABORT_MSG détermine si un message texte utile est imprimé quand un programme s’arrête anormalement. Le message indique que l’application a appelé la fonction abort. Le comportement par défaut consiste à imprimer le message. _CALL_REPORTFAULT, s’il est défini, appelle le mécanisme du service de rapports d’erreurs Windows (anciennement Dr Watson) pour signaler des échecs à Microsoft lorsqu’il abort est appelé. Par défaut, le signalement de vidage sur incident est activé dans les builds non DEBUG. Si le gestionnaire de rapports d’erreurs Windows n’est pas appelé, abort les appels _exit pour arrêter le processus avec le code de sortie 3 et retourne le contrôle au processus parent ou au système d’exploitation. _exit ne vide pas les mémoires tampons de flux ou ne traite atexit/_onexit pas.

Pour des raisons de compatibilité Windows, lorsque des abort appels _exit, il peut appeler l’API Windows ExitProcess , ce qui permet à son tour aux routines d’arrêt DLL de s’exécuter. Les destructeurs ne sont pas exécutés dans l’exécutable, mais la même chose peut ne pas être vraie des DLL chargées dans l’espace de processus de l’exécutable. Ce comportement n’est pas strictement conforme à la norme C++. Pour terminer immédiatement un processus, y compris les DLL, utilisez l’API Windows TerminateProcess . Vous pouvez également inscrire un gestionnaire de signal d’abandon qui appelle un TerminateProcess comportement conforme aux normes. Le comportement conforme peut entraîner un certain coût dans la compatibilité de Windows.

Par défaut, l’état global de cette fonction est limité à l’application. Pour le modifier, consultez l’état global dans le CRT.

Spécifications

Routine En-tête requis
_set_abort_behavior <stdlib.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// crt_set_abort_behavior.c
// compile with: /TC
#include <stdlib.h>

int main()
{
   printf("Suppressing the abort message. If successful, this message"
          " will be the only output.\n");
   // Suppress the abort message
   _set_abort_behavior( 0, _WRITE_ABORT_MSG);
   abort();
}
Suppressing the abort message. If successful, this message will be the only output.

Voir aussi

abort