Compartilhar via


_CrtSetReportFile

Depois de usar _CrtSetReportMode para especificar _CRTDBG_MODE_FILE, será possível especificar o identificador de arquivo para receber o texto de mensagem. _CrtSetReportFile também é usado por _CrtDbgReport, _CrtDbgReportW para especificar o destino do texto (somente versão de depuração).

_HFILE _CrtSetReportFile( 
   int reportType,
   _HFILE reportFile 
);

Parâmetros

  • reportType
    Tipo de relatório: _CRT_WARN, _CRT_ERROR e _CRT_ASSERT.

  • reportFile
    Novo arquivo de relatório para reportType.

Valor de retorno

Na conclusão com êxito, _CrtSetReportFile retorna o arquivo de relatório anterior definido para o tipo de relatório especificado em reportType. Se um valor inválido for passado para reportType, essa função chama o manipulador de parâmetro inválido, conforme descrito em Validação do parâmetro. Se a execução puder continuar, errno será definido como EINVAL e a função retornará _CRTDBG_HFILE_ERROR. Para obter mais informações, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

Comentários

_CrtSetReportFile é usado com a função de _CrtSetReportMode para definir o destino ou os destinos de um tipo específico de relatório gerado por _CrtDbgReport. Quando _CrtSetReportMode foi chamado para atribuir o modo de relatório _CRTDBG_MODE_FILE para um tipo específico de relatório, _CrtSetReportFile deve ser chamado para definir o arquivo específico ou fluxo para usar como destino. Quando _DEBUG não está definido, as chamadas a _CrtSetReportFile são removidas durante o pré-processamento.

A tabela a seguir mostra uma lista de opções disponíveis para reportFile e o comportamento resultante de _CrtDbgReport. Essas opções são definidas como sinalizadores de bit em Crtdbg.h.

  • file handle
    Um identificador do arquivo que será o destino das mensagens. Nenhuma tentativa de verificar a validade da manipulação foi feita. Você deve abrir e fechar o identificador para o arquivo. Por exemplo:

       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
    Grava a mensagem para stderr, que pode ser redirecionada como segue:

       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
    Grava a mensagem para stdout, que pode ser redirecionada.

  • _CRTDBG_REPORT_FILE
    Retorna o modo de relatório atual.

O arquivo de relatório usado por cada tipo de relatório pode ser controlado separadamente. Por exemplo, é possível especificar que um reportType de _CRT_ERROR seja relatado a stderr, quando um reportType de _CRT_ASSERT é relatado a um identificador de arquivo ou um fluxo definido pelo usuário.

Requisitos

Rotina

Cabeçalho necessário

Cabeçalho opcional

_CrtSetReportFile

<crtdbg.h>

<errno.h>

O console não tem suporte em aplicativos do Windows Store. Os manipuladores de fluxo padrão associados ao console — stdin, stdout e stderr — devem ser redirecionados antes que as funções de tempo de execução do C possam utilizá-los em aplicativos do Windows Store. Para obter mais informações de compatibilidade, consulte Compatibilidade.

Bibliotecas: Somente as versões de depuração das Recursos da biblioteca CRT.

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Rotinas de depuração