_CrtSetReportFile
_CrtSetReportMode
После указания _CRTDBG_MODE_FILE
можно указать дескриптор файла для получения текста сообщения. _CrtSetReportFile
также используется для _CrtDbgReport
_CrtDbgReportW
указания назначения текста (только отладочная версия).
Синтаксис
_HFILE _CrtSetReportFile(
int reportType,
_HFILE reportFile
);
Параметры
reportType
Тип отчета: _CRT_WARN
, _CRT_ERROR
и _CRT_ASSERT
.
reportFile
Новый файл отчета для reportType
.
Возвращаемое значение
При успешном завершении функция _CrtSetReportFile
возвращает предыдущий файл отчета, заданный для типа отчета, который определяется параметром reportType
. Если недопустимое значение передается для reportType
, эта функция вызывает обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение разрешено продолжать, errno
задано значение EINVAL
, а функция возвращается _CRTDBG_HFILE_ERROR
. Дополнительные сведения см. в разделе errno
, _doserrno
, _sys_errlist
, и _sys_nerr
.
Замечания
_CrtSetReportFile
используется с _CrtSetReportMode
функцией для определения назначения или назначения для определенного типа отчета, созданного _CrtDbgReport
. При вызове _CrtSetReportMode
для назначения _CRTDBG_MODE_FILE
режима отчетности для определенного типа отчета также вызывается _CrtSetReportFile
указание целевого файла или потока. Если _DEBUG
это не определено, вызовы _CrtSetReportFile
удаляются во время предварительной обработки.
В следующем списке показаны доступные варианты для reportFile
и итогового _CrtDbgReport
поведения. Эти параметры задаются в виде битовых флагов в файле Crtdbg.h.
Дескриптор файла
Дескриптор файла, который будет служить местом назначения для сообщений. Попытки проверить допустимость дескриптора не предпринимаются. Дескриптор файла необходимо открыть и закрыть. Например:
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
Записывает в
stderr
сообщение, которое может быть переадресовано следующим образом: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
Записывает в
stdout
сообщение, которые можно переадресовать._CRTDBG_REPORT_FILE
Возвращает текущий режим отчетов.
Вы можете управлять файлом отчета, используемым каждым типом отчета отдельно. Например, можно указать, что reportType
_CRT_ERROR
отчеты выполняются stderr
с reportType
_CRT_ASSERT
помощью определяемого пользователем дескриптора или потока отчетов.
Требования
Маршрут | Обязательный заголовок | Необязательный заголовок |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> | <errno.h> |
Консоль не поддерживается в приложениях универсальная платформа Windows (UWP). Стандартные дескрипторы потока, связанные с консолью, stdin
stdout
и stderr
, должны быть перенаправлены перед тем, как функции времени выполнения C могут использовать их в приложениях UWP. Дополнительные сведения о совместимости см. в разделе Совместимость.
Библиотеки: только отладка версий библиотеки CRT.