_CrtSetReportFile
Depois de usar _CrtSetReportMode
para especificar _CRTDBG_MODE_FILE
, você pode especificar o identificador de arquivo para receber o texto da mensagem. _CrtSetReportFile
também é usado por _CrtDbgReport
, _CrtDbgReportW
para especificar o destino do texto (somente na versão de depuração).
Sintaxe
_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 retornado
Após a conclusão bem-sucedida, _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 invocará o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se for permitido continuar a execução, 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 _CrtSetReportMode
para definir o destino ou destinos de um tipo de relatório específico gerado por _CrtDbgReport
. Quando você chamar _CrtSetReportMode
para atribuir o modo de relatório _CRTDBG_MODE_FILE
a um tipo de relatório específico, chame também _CrtSetReportFile
para especificar o arquivo ou fluxo de destino. Quando _DEBUG
não está definido, as chamadas para _CrtSetReportFile
são removidas durante o pré-processamento.
A lista a seguir mostra as opções disponíveis para reportFile
e o comportamento resultante de _CrtDbgReport
. Essas opções são definidas como sinalizadores de bits em Crtdbg.h.
file handle
Um identificador para o arquivo que será o destino das mensagens. Nenhuma tentativa é feita para verificar a validade do identificador. É necessário abrir e fechar o identificador do 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 em
stderr
, que pode ser redirecionada da seguinte maneira: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 em
stdout
, que pode ser redirecionada._CRTDBG_REPORT_FILE
Retorna o modo de relatório atual.
É possível controlar o arquivo de relatório usado por cada tipo de relatório separadamente. Por exemplo, é possível especificar que um reportType
de _CRT_ERROR
relate por meio de stderr
, enquanto um reportType
de _CRT_ASSERT
relate por meio de um identificador de arquivo ou fluxo definido pelo usuário.
Requisitos
Rotina | Cabeçalho necessário | Cabeçalho opcional |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> | <errno.h> |
Não há suporte para o console em aplicativos UWP (Plataforma Universal do Windows). Os identificadores de fluxo padrão associados ao console, stdin
, stdout
e stderr
, devem ser redirecionados antes que as funções em tempo de execução C possam usá-los em aplicativos UWP. Para obter informações sobre compatibilidade, consulte Compatibilidade.
Bibliotecas: Apenas versões de depuração dos recursos da biblioteca CRT.