Compartir a través de


_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_errlisty _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.

Consulte también

Rutinas de depuración