Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Určuje akci, která se má provést při neobvyklém ukončení programu.
Poznámka:
Funkci nepoužívejte abort k vypnutí aplikace z Microsoft Storu, s výjimkou scénářů testování nebo ladění. Programové způsoby zavření aplikace pro Store prostřednictvím kódu programu nebo uživatelského rozhraní nejsou povoleny podle zásad Microsoft Storu. Další informace najdete v tématu Životní cyklus aplikace pro UPW.
Syntaxe
unsigned int _set_abort_behavior(
unsigned int flags,
unsigned int mask
);
Parametry
flags
Nová hodnota abort příznaků
mask
Maska abort pro bity příznaků, které se mají nastavit.
Vrácená hodnota
Stará hodnota příznaků.
Poznámky
Existují dva abort příznaky: _WRITE_ABORT_MSG a _CALL_REPORTFAULT. _WRITE_ABORT_MSG určuje, zda je při neobvyklém ukončení programu vytištěna užitečná textová zpráva. Zpráva uvádí, že aplikace volala abort funkci. Výchozí chování je vytisknout zprávu. _CALL_REPORTFAULT, pokud je nastavena, vyvolá mechanismus služby Zasílání zpráv o chybách systému Windows Service (dříve označovaný jako Dr. Watson) k hlášení selhání společnosti Microsoft při abort volání. Ve výchozím nastavení je protokolování výpisu stavu systému povolené v sestaveních, které nejsou v ladění. Pokud není vyvolána obslužná rutina zasílání zpráv o chybách systému Windows, abort volání _exit pro ukončení procesu ukončovacím kódem 3 a vrátí řízení nadřazeného procesu nebo operačního systému. _exit neprázdní vyrovnávací paměti datových proudů ani zpracování atexit/_onexit .
Z důvodů kompatibility Systému Windows může volání abort _exitvyvolat rozhraní API systému Windows ExitProcess , které zase umožňuje spouštění rutin ukončení knihovny DLL. Destruktory se nespouštějí ve spustitelném souboru, ale totéž nemusí být pravdivé pro knihovny DLL načtené v prostoru procesu spustitelného souboru. Toto chování není striktně v souladu se standardem C++. Pokud chcete okamžitě ukončit proces včetně knihoven DLL, použijte rozhraní API systému Windows TerminateProcess . Můžete také zaregistrovat obslužnou rutinu přerušeného signálu, která vyvolá TerminateProcess chování vyhovující standardu. Kompatibilní chování může být v kompatibilitě s Windows za určitou cenu.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Pokud ho chcete změnit, přečtěte si téma Globální stav v CRT.
Požadavky
| Rutina | Požadovaný hlavičkový soubor |
|---|---|
_set_abort_behavior |
<stdlib.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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.