Compartilhar via


_CrtSetReportFile

Depois de especificar _CRTDBG_MODE_FILEcom CrtSetReportMode, você pode especificar o identificador de arquivo para receber texto de mensagem._CrtSetReportFile também é usado por _CrtDbgReport, CrtDbgReportW para especificar o destino de texto (versão de depuração somente).

_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 é passado para reportType, essa função chama o manipulador de parâmetro inválido, como descrito em Validação de parâmetro.Se a execução é permitida continuar, errno é definido como EINVAL e a função retorna _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 destinos para um tipo específico de relatório gerado por _CrtDbgReport.Quando _CrtSetReportMode foi chamado para atribuir _CRTDBG_MODE_FILE que relata o modo para um tipo específico de relatório, em seguida _CrtSetReportFile deve ser chamado para definir o arquivo específico ou para passar para usar como o destino.Quando DEBUG não é definido, chamadas a _CrtSetReportFile são removidos durante pré-processamento.

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

  • file handle
    Um identificador para o arquivo que será o destino para mensagens.Nenhuma tentativa é feita para verificar a validade de manipular.Você deve abrir e fechar o identificador de 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 a stderr, que podem ser redirecionados 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 a stdout, que você pode redirecionar.

  • _CRTDBG_REPORT_FILE
    Retorna o modo atual de relatório.

O arquivo de relatório usado por cada tipo de relatório separada pode ser controlado.Por exemplo, é possível especificar que reportType de _CRT_ERROR é relatado a stderr, quando 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 é suportado em aplicativos de Windows Store .Identificadores padrões de fluxo associadas ao console, stdin, stdout, e stderr, devem ser redirecionada antes que as funções de tempo de execução das C pode usar em aplicativos de Windows Store .Para mais informações, consulte Compatibilidade de compatibilidade na introdução.

Versões de depuração deBibliotecas: de Recursos da biblioteca CRT somente.

Exemplo

Consulte report.

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