_CrtSetReportFile

_CrtSetReportMode를 사용하여 _CRTDBG_MODE_FILE을 지정한 후 메시지 텍스트를 수신할 파일 핸들을 지정할 수 있습니다. _CrtSetReportFile은 또한 _CrtDbgReport, _CrtDbgReportW에서 텍스트 대상을 지정하는 데 사용됩니다(디버그 버전에만 해당).

구문

_HFILE _CrtSetReportFile(
   int reportType,
   _HFILE reportFile
);

매개 변수

reportType
보고서 형식: _CRT_WARN, _CRT_ERROR_CRT_ASSERT

reportFile
reportType의 새 보고서 파일입니다.

반환 값

성공적으로 완료되면 _CrtSetReportFilereportType에 지정된 보고서 형식에 대해 정의된 이전 보고서 파일을 반환합니다. reportType에 대해 잘못된 값이 전달된 경우 이 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우 errnoEINVAL 로 설정되고 함수에서 _CRTDBG_HFILE_ERROR버전입니다. 자세한 내용은 다음을 참조하세요.errno, _doserrno, _sys_errlist_sys_nerr.

설명

_CrtSetReportFile_CrtSetReportMode 함수와 함께 사용되어 _CrtDbgReport에서 생성된 특정 보고서 종류에 대한 대상을 정의합니다. 특정 보고서 종류에 대해 _CRTDBG_MODE_FILE 보고 모드를 할당하기 위해 _CrtSetReportMode를 호출하는 경우 _CrtSetReportFile도 호출하여 대상 파일 또는 스트림을 지정합니다. _DEBUG가 정의되지 않은 경우 전처리 중에 _CrtSetReportFile에 대한 호출이 제거됩니다.

다음 목록은 reportFile에 대해 사용 가능한 선택 사항과 _CrtDbgReport의 결과 동작을 보여 줍니다. 이러한 옵션은 Crtdbg.h에서 비트 플래그로 정의되어 있습니다.

  • 파일 핸들

    메시지의 대상이 될 파일에 대한 핸들입니다. 핸들의 유효성이 확인되지는 않습니다. 파일에 대한 핸들을 열고 닫아야 합니다. 예시:

    HANDLE hLogFile;
    hLogFile = CreateFile("c:\\log.txt", GENERIC_WRITE,
        FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
        FILE_ATTRIBUTE_NORMAL, NULL);
    _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
    _CrtSetReportFile(_CRT_WARN, hLogFile);
    
    _RPT0(_CRT_WARN,"file message\n");
    CloseHandle(hLogFile);
    
  • _CRTDBG_FILE_STDERR

    stderr에 메시지를 작성하며, 다음과 같이 리디렉션될 수 있습니다.

    freopen( "c:\\log2.txt", "w", stderr);
    _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
    _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
    
    _RPT0(_CRT_ERROR,"1st message\n");
    
  • _CRTDBG_FILE_STDOUT

    stdout에 메시지를 작성하며, 사용자가 리디렉션할 수 있습니다.

  • _CRTDBG_REPORT_FILE

    현재 보고서 모드를 반환합니다.

각 보고서 종류별로 사용되는 보고서 파일을 별도로 제어할 수 있습니다. 예를 들어, _CRT_ERRORreportTypestderr을 통해 보고하고 _CRT_ASSERTreportType은 사용자 정의 파일 핸들 또는 스트림을 통해 보고하도록 지정할 수 있습니다.

요구 사항

루틴에서 반환된 값 필수 헤더 선택적 헤더
_CrtSetReportFile <crtdbg.h> <errno.h>

UWP(유니버설 Windows 플랫폼) 앱에서는 콘솔이 지원되지 않습니다. 콘솔에 연결된 표준 스트림 핸들, stdin, stdoutstderr은 UWP 앱의 C 런타임 함수에서 사용되기 전에 리디렉션되어야 합니다. 호환성에 대한 자세한 내용은 호환성을 참조하세요.

라이브러리: 디버그 버전의 CRT 라이브러리 기능만 해당합니다.

참고 항목

디버그 루틴