Sdílet prostřednictvím


_set_abort_behavior

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.

Viz také

abort