다음을 통해 공유


set_terminate (CRT)

terminate로 호출할 자체 종료 루틴을 설치합니다.

구문

terminate_function set_terminate( terminate_function termFunction );

매개 변수

termFunction
작성하는 terminate 함수에 대한 포인터입니다.

반환 값

이전 함수를 나중에 복원할 수 있도록 set_terminate에서 등록한 이전 함수에 대한 포인터를 반환합니다. 이전 함수가 설정되지 않은 경우 반환 값을 사용하여 기본 동작을 복원할 수 있습니다. 이 값은 다음과 같습니다 NULL.

설명

set_terminate 함수는 terminate에서 호출한 함수로 termFunction을 설치합니다. set_terminate는 C++ 예외 처리와 함께 사용되며, 예외가 throw되기 전에 프로그램의 어떤 지점에서든 호출할 수 있습니다. terminate는 기본적으로 abort를 호출합니다. 종료 함수를 직접 작성하고 함수 이름을 인수로 사용해 set_terminate를 호출하면 이 기본값을 변경할 수 있습니다. terminateset_terminate에 대한 인수로 지정된 마지막 함수를 호출합니다. 원하는 정리 작업을 termFunction 수행한 후 프로그램을 종료해야 합니다. 종료되지 않으면(호출자에게 반환되는 경우) abort 호출됩니다.

다중 스레드 환경에서 terminate 함수는 각 스레드에 대해 개별적으로 유지 관리됩니다. 각 새 스레드는 자체 terminate 함수를 설치해야 합니다. 따라서 각 스레드는 자체 종료 처리를 담당합니다.

terminate_function 형식은 EH.H에서 void를 반환하는 사용자 정의 종료 함수 termFunction에 대한 포인터로 정의됩니다. 사용자 지정 함수 termFunction 는 인수를 사용할 수 없으며 호출자에게 반환해서는 안 됩니다. 이 함수가 호출자에게 반환되는 경우에는 abort가 호출됩니다. termFunction 내에서 예외가 throw되면 안 됩니다.

typedef void ( *terminate_function )( );

참고 항목

set_terminate 함수는 디버거 외부에서만 작동합니다.

동적으로 연결된 모든 DLL 또는 EXE에 대한 단일 set_terminate 처리기가 있습니다. 호출 set_terminate 하는 경우 처리기가 다른 처리기로 대체되거나 다른 DLL 또는 EXE로 설정된 처리기를 대체할 수 있습니다.

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

요구 사항

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

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

예시

terminate에 대한 예를 참조하세요.

참고 항목

예외 처리 루틴
abort
_get_terminate
set_unexpected
terminate
unexpected