Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Hiermee geeft u de actie die moet worden uitgevoerd wanneer een programma abnormaal wordt beëindigd.
Opmerking
Gebruik de abort functie niet om een Microsoft Store-app af te sluiten, behalve in test- of foutopsporingsscenario's. Programmatische of ui-manieren om een Store-app te sluiten, zijn niet toegestaan volgens het Microsoft Store-beleid. Zie de levenscyclus van UWP-apps voor meer informatie.
Syntaxis
unsigned int _set_abort_behavior(
unsigned int flags,
unsigned int mask
);
Parameterwaarden
flags
Nieuwe waarde van de abort vlaggen.
mask
Masker voor de abort vlaggen bits die moeten worden ingesteld.
Retourwaarde
De oude waarde van de vlaggen.
Opmerkingen
Er zijn twee abort vlaggen: _WRITE_ABORT_MSG en _CALL_REPORTFAULT.
_WRITE_ABORT_MSG bepaalt of een nuttig tekstbericht wordt afgedrukt wanneer een programma abnormaal wordt beëindigd. Het bericht geeft aan dat de toepassing de abort functie heeft aangeroepen. Het standaardgedrag is om het bericht af te drukken.
_CALL_REPORTFAULT, indien ingesteld, roept het Windows Error Reporting Service-mechanisme (voorheen dr. Watson genoemd) aan om fouten aan Microsoft te melden wanneer abort deze wordt aangeroepen. Crashdumprapportage is standaard ingeschakeld in niet-DEBUG-builds. Als de Handler voor Windows-foutenrapportage niet wordt aangeroepen, abort roept _exit u aan om het proces te beëindigen met afsluitcode 3 en wordt het besturingselement geretourneerd naar het bovenliggende proces of het besturingssysteem.
_exit maakt geen stroombuffers leeg of voert atexit/_onexit verwerking uit.
Om windows-compatibiliteitsredenen kan het, wanneer abort aanroepen _exit, de Windows-API ExitProcess aanroepen, waardoor DLL-beëindigingsroutines op zijn beurt kunnen worden uitgevoerd. Destructors worden niet uitgevoerd in het uitvoerbare bestand, maar hetzelfde geldt mogelijk niet voor DLL's die in de procesruimte van het uitvoerbare bestand zijn geladen. Dit gedrag voldoet niet strikt aan de C++-standaard. Als u een proces met inbegrip van DLL's onmiddellijk wilt beëindigen, gebruikt u de Windows-API TerminateProcess . U kunt ook een afgebroken signaalhandler registreren die aanroept TerminateProcess voor standaardconform gedrag. Nalevingsgedrag kan enige kosten met zich meebrengen in windows-compatibiliteit.
De globale status van deze functie is standaard gericht op de toepassing. Als u deze wilt wijzigen, raadpleegt u de globale status in de CRT.
Requirements
| Routine | Vereiste header |
|---|---|
_set_abort_behavior |
<stdlib.h> |
Zie Compatibiliteit voor meer compatibiliteitsinformatie.
Example
// 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.