다음을 통해 공유


_set_abort_behavior

프로그램이 비정상적으로 종료될 때 수행할 작업을 지정합니다.

참고 항목

테스트 또는 디버깅 시나리오를 제외하고 이 함수를 사용하여 abort Microsoft Store 앱을 종료하지 마세요. Microsoft Store 정책에 따라 스토어 앱을 닫는 프로그래밍 방식 또는 UI 방법은 허용되지 않습니다. 자세한 내용은 UWP 앱 수명 주기를 참조 하세요.

구문

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

매개 변수

flags
abort 플래그의 새 값입니다.

mask
설정할 abort 플래그 비트의 마스크입니다.

반환 값

플래그의 이전 값입니다.

설명

abort 플래그에는 _WRITE_ABORT_MSG_CALL_REPORTFAULT의 두 가지가 있습니다. _WRITE_ABORT_MSG는 프로그램이 비정상적으로 종료될 때 유용한 텍스트 메시지를 인쇄할지를 결정합니다. 이 메시지는 애플리케이션이 abort 함수를 호출했음을 설명합니다. 기본 동작은 메시지를 인쇄하는 것입니다. _CALL_REPORTFAULT설정되면 Windows 오류 보고 Service 메커니즘(이전의 Dr. Watson)을 호출하여 호출 시 abort Microsoft에 오류를 보고합니다. 기본적으로 DEBUG가 아닌 모드에서는 크래시 덤프 보고가 사용하도록 설정됩니다. Windows 오류 보고 처리기가 호출 abort 되지 않으면 종료 코드 3을 사용하여 프로세스를 종료하도록 호출 _exit 하고 부모 프로세스 또는 운영 체제에 제어권을 반환합니다. _exit 는 스트림 버퍼를 플러시하거나 처리를 수행 atexit/_onexit 하지 않습니다.

Windows 호환성을 위해 호출 _exitabort Windows ExitProcess API를 호출하여 DLL 종료 루틴을 실행할 수 있습니다. 소멸자는 실행 파일에서 실행되지 않지만 실행 파일의 프로세스 공간에 로드된 DLL의 경우도 마찬가지일 수 있습니다. 이 동작은 C++ 표준을 엄격하게 준수하지 않습니다. 모든 DLL을 포함한 프로세스를 즉시 종료하려면 Windows TerminateProcess API를 사용합니다. 표준 규격 동작을 호출 TerminateProcess 하는 중단 신호 처리기를 등록할 수도 있습니다. 규격 동작은 Windows 호환성에 약간의 비용이 들 수 있습니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 변경하려면 CRT의 전역 상태를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 헤더
_set_abort_behavior <stdlib.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// 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.

참고 항목

abort