_CrtSetReportFile
Después de usar _CrtSetReportMode
para especificar _CRTDBG_MODE_FILE
, puede especificar el identificador de archivo que va a recibir el texto del mensaje. _CrtSetReportFile
también usa _CrtDbgReport
, _CrtDbgReportW
para especificar el destino del texto (solo versión de depuración).
Sintaxis
_HFILE _CrtSetReportFile(
int reportType,
_HFILE reportFile
);
Parámetros
reportType
Tipo de informe: _CRT_WARN
, _CRT_ERROR
y _CRT_ASSERT
.
reportFile
Nuevo archivo de informe para reportType
.
Valor devuelto
Cuando la operación finaliza correctamente, _CrtSetReportFile
devuelve el archivo de informe anterior definido para el tipo de informe especificado en reportType
. Si se pasa un valor no válido a reportType
, esta función invoca al controlador de parámetros no válidos, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, errno
está establecido en EINVAL
y la función devuelve _CRTDBG_HFILE_ERROR
. Para obtener más información, veaerrno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Comentarios
_CrtSetReportFile
se usa con la función _CrtSetReportMode
para definir los destinos de un tipo de informe específico generado por _CrtDbgReport
. Al llamar a _CrtSetReportMode
para asignar el modo de creación de informes _CRTDBG_MODE_FILE
para un tipo de informe específico, llame también a _CrtSetReportFile
para especificar el flujo o archivo de destino. Cuando _DEBUG
no se define, las llamadas a _CrtSetReportFile
se quitan durante el preprocesamiento.
En la lista siguiente se muestran las opciones disponibles para reportFile
y el comportamiento resultante de _CrtDbgReport
. Estas opciones se definen como marcas de bits en Crtdbg.h.
identificador de archivos
Identificador del archivo que será el destino de los mensajes. No se intenta comprobar la validez del identificador. Es necesario abrir y cerrar el identificador del archivo. Por ejemplo:
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
Escribe el mensaje en
stderr
, que se pueden redirigir como se indica a continuación: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
Escribe el mensaje en
stdout
, que puede redirigir._CRTDBG_REPORT_FILE
Devuelve el modo de creación de informes actual.
Puede controlar el archivo de informe usado por cada tipo de informe por separado. Por ejemplo, es posible especificar que un reportType
de _CRT_ERROR
informa a través de stderr
, mientras que un reportType
de _CRT_ASSERT
informa a través de un flujo o identificador de archivo definido por el usuario.
Requisitos
Routine | Encabezado necesario | Encabezado opcional |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> | <errno.h> |
La consola no se admite en las aplicaciones de la Plataforma universal de Windows (UWP). Los identificadores de flujo estándar asociados a la consola, stdin
, stdout
y stderr
, se deben redirigir antes de que las funciones en tiempo de ejecución de C puedan usarlos en aplicaciones para UWP. Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Bibliotecas: solo versiones de depuración de Características de la biblioteca CRT.