_CrtSetReportFile

Setelah Anda menggunakan _CrtSetReportMode untuk menentukan _CRTDBG_MODE_FILE, Anda dapat menentukan handel file untuk menerima teks pesan. _CrtSetReportFile juga digunakan oleh _CrtDbgReport, _CrtDbgReportW untuk menentukan tujuan teks (hanya versi debug).

Sintaks

_HFILE _CrtSetReportFile(
   int reportType,
   _HFILE reportFile
);

Parameter

reportType
Jenis laporan: _CRT_WARN, _CRT_ERROR, dan _CRT_ASSERT.

reportFile
File laporan baru untuk reportType.

Nilai hasil

Setelah berhasil diselesaikan, _CrtSetReportFile mengembalikan file laporan sebelumnya yang ditentukan untuk jenis laporan yang ditentukan dalam reportType. Jika nilai yang tidak valid diteruskan untuk reportType, fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno diatur ke EINVAL, dan fungsi mengembalikan _CRTDBG_HFILE_ERROR. Untuk informasi selengkapnya, lihat errno, _doserrno, _sys_errlist, dan _sys_nerr.

Keterangan

_CrtSetReportFile digunakan dengan _CrtSetReportMode fungsi untuk menentukan tujuan atau tujuan untuk jenis laporan tertentu yang dihasilkan oleh _CrtDbgReport. Saat Anda memanggil _CrtSetReportMode untuk menetapkan _CRTDBG_MODE_FILE mode pelaporan untuk jenis laporan tertentu, panggil _CrtSetReportFile juga untuk menentukan file atau aliran tujuan. Jika _DEBUG tidak ditentukan, panggilan ke _CrtSetReportFile akan dihapus selama praproscesing.

Daftar berikut menunjukkan pilihan yang tersedia untuk reportFile dan perilaku yang dihasilkan dari _CrtDbgReport. Opsi ini didefinisikan sebagai bendera bit di Crtdbg.h.

  • handel file

    Handel ke file yang akan menjadi tujuan pesan. Tidak ada upaya yang dilakukan untuk memverifikasi validitas handel. Anda harus membuka dan menutup handel ke file. Contohnya:

    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

    Menulis pesan ke stderr, yang dapat dialihkan sebagai berikut:

    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

    Menulis pesan ke stdout, yang dapat Anda alihkan.

  • _CRTDBG_REPORT_FILE

    Mengembalikan mode laporan saat ini.

Anda dapat mengontrol file laporan yang digunakan oleh setiap jenis laporan secara terpisah. Misalnya, dimungkinkan untuk menentukan bahwa laporan reportType_CRT_ERROR melalui stderr, sementara reportType laporan _CRT_ASSERT melalui handel atau aliran file yang ditentukan pengguna.

Persyaratan

Rutin Header yang diperlukan Header opsional
_CrtSetReportFile <crtdbg.h> <errno.h>

Konsol tidak didukung di aplikasi Platform Windows Universal (UWP). Handel aliran standar yang terkait dengan konsol, , stdin, stdoutdan stderr, harus dialihkan sebelum fungsi run-time C dapat menggunakannya di aplikasi UWP. Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Pustaka: Hanya versi debug fitur pustaka CRT.

Lihat juga

Rutinitas debug