I/O aliran
Fungsi-fungsi ini memproses data dalam berbagai ukuran dan format, dari karakter tunggal hingga struktur data besar. Mereka juga menyediakan buffering, yang dapat meningkatkan performa. Ukuran default buffer stream adalah 4K. Rutinitas ini hanya memengaruhi buffer yang dibuat oleh rutinitas pustaka run-time, dan tidak berpengaruh pada buffer yang dibuat oleh sistem operasi.
Mengalirkan rutinitas I/O
Rutin | Gunakan |
---|---|
clearerr , clearerr_s |
Bersihkan indikator kesalahan untuk aliran |
fclose |
Tutup aliran |
_fcloseall |
Tutup semua aliran terbuka kecuali stdin , stdout , dan stderr |
_fdopen , wfdopen |
Mengaitkan aliran dengan pendeskripsi file dari file terbuka |
feof |
Menguji akhir file pada aliran |
ferror |
Uji kesalahan saat streaming |
fflush |
Menghapus aliran ke buffer atau perangkat penyimpanan |
fgetc , fgetwc |
Membaca karakter dari aliran (versi getc fungsi dan getwc ) |
_fgetchar , _fgetwchar |
Membaca karakter dari stdin (versi getchar fungsi dan getwchar ) |
fgetpos |
Mendapatkan indikator posisi aliran |
fgets , fgetws |
Membaca string dari aliran |
_fileno |
Mendapatkan pendeskripsi file yang terkait dengan aliran |
_flushall |
Menghapus semua aliran ke buffer atau perangkat penyimpanan |
fopen , _wfopen , fopen_s , _wfopen_s |
Buka aliran |
fprintf , _fprintf_l , fwprintf , _fwprintf_l , fprintf_s , _fprintf_s_l , fwprintf_s , _fwprintf_s_l |
Menulis data yang diformat untuk dialirkan |
fputc , fputwc |
Menulis karakter ke aliran (versi putc fungsi dan putwc ) |
_fputchar , _fputwchar |
Tulis karakter ke stdout (versi putchar fungsi dan putwchar ) |
fputs , fputws |
Tulis string untuk mengalirkan |
fread |
Membaca data yang tidak diformat dari aliran |
freopen , _wfreopen , freopen_s , _wfreopen_s |
Menetapkan ulang FILE penunjuk aliran ke file atau perangkat baru |
fscanf , fwscanf , fscanf_s , _fscanf_s_l , fwscanf_s , _fwscanf_s_l |
Membaca data yang diformat dari aliran |
fseek , _fseeki64 |
Pindahkan posisi file ke lokasi yang diberikan |
fsetpos |
Mengatur indikator posisi aliran |
_fsopen , _wfsopen |
Buka aliran dengan berbagi file |
ftell , _ftelli64 |
Dapatkan posisi file saat ini |
fwrite |
Menulis item data yang tidak diformat untuk dialirkan |
getc , getwc |
Membaca karakter dari aliran (versi fgetc makro dan fgetwc ) |
getchar , getwchar |
Membaca karakter dari stdin (versi fgetchar makro dan fgetwchar ) |
_getmaxstdio |
Mengembalikan jumlah file yang terbuka secara bersamaan yang diizinkan di tingkat I/O aliran. |
gets_s , _getws_s |
Membaca baris dari stdin |
_getw |
Membaca biner int dari aliran |
printf , _printf_l , wprintf , _wprintf_l ,printf_s , _printf_s_l , wprintf_s , _wprintf_s_l |
Menulis data yang diformat ke stdout |
putc , putwc |
Menulis karakter ke aliran (versi fputc makro dan fputwc ) |
putchar , putwchar |
Tulis karakter ke stdout (versi fputchar makro dan fputwchar ) |
puts , _putws |
Menulis baris ke aliran |
_putw |
Menulis biner int ke aliran |
rewind |
Memindahkan posisi file ke awal aliran |
_rmtmp |
Hapus file sementara yang dibuat oleh tmpfile |
scanf , _scanf_l , wscanf , _wscanf_l ,scanf_s , _scanf_s_l , wscanf_s , _wscanf_s_l |
Membaca data yang diformat dari stdin |
setbuf |
Mengontrol buffering aliran |
_setmaxstdio |
Atur maksimum untuk jumlah file yang terbuka secara bersamaan di tingkat I/O aliran. |
setvbuf |
Mengontrol buffering stream dan ukuran buffer |
_snprintf , _snwprintf , _snprintf_s , _snprintf_s_l , _snwprintf_s , _snwprintf_s_l |
Menulis data yang diformat dengan panjang yang ditentukan untuk string |
_snscanf , _snwscanf , _snscanf_s , _snscanf_s_l , _snwscanf_s , _snwscanf_s_l |
Membaca data yang diformat dengan panjang yang ditentukan dari aliran input standar. |
sprintf , swprintf , sprintf_s , _sprintf_s_l , swprintf_s , _swprintf_s_l |
Menulis data yang diformat ke string |
sscanf , , swscanf sscanf_s , _sscanf_s_l, , swscanf_s _swscanf_s_l |
Membaca data yang diformat dari string |
_tempnam , _wtempnam |
Hasilkan nama file sementara dalam direktori tertentu |
tmpfile , tmpfile_s |
Membuat file sementara |
tmpnam , _wtmpnam , tmpnam_s , _wtmpnam_s |
Hasilkan nama file sementara |
ungetc , ungetwc |
Dorong karakter kembali ke aliran |
_vcprintf , _vcwprintf , _vcprintf_s , _vcprintf_s_l , _vcwprintf_s , _vcwprintf_s_l |
Tulis data yang diformat ke konsol. |
vfprintf , vfwprintf , vfprintf_s , _vfprintf_s_l , vfwprintf_s , _vfwprintf_s_l |
Menulis data yang diformat untuk dialirkan |
vprintf , vwprintf , vprintf_s , _vprintf_s_l , vwprintf_s , _vwprintf_s_l |
Menulis data yang diformat ke stdout |
_vsnprintf , _vsnwprintf , vsnprintf_s , _vsnprintf_s , _vsnprintf_s_l , _vsnwprintf_s , _vsnwprintf_s_l |
Menulis data yang diformat dengan panjang yang ditentukan ke buffer |
vsprintf , vswprintf , vsprintf_s , _vsprintf_s_l , vswprintf_s , _vswprintf_s_l |
Menulis data yang diformat ke buffer |
Ketika program memulai eksekusi, kode startup secara otomatis membuka beberapa aliran: input standar (ditunjuk oleh stdin
), output standar (ditunjuk oleh stdout
), dan kesalahan standar (ditunjuk oleh stderr
). Aliran ini diarahkan ke konsol (keyboard dan layar) secara default. Gunakan freopen
untuk mengalihkan stdin
, stdout
, atau stderr
ke file disk atau perangkat.
File yang dibuka menggunakan rutinitas aliran di-buffer secara default. Fungsi stdout
dan stderr
dibersihkan setiap kali penuh atau, jika Anda menulis ke perangkat karakter, setelah setiap panggilan pustaka. Jika program berakhir secara abnorrmal, buffer output mungkin tidak dibersihkan, yang mengakibatkan hilangnya data. Gunakan fflush
atau _flushall
untuk memastikan bahwa buffer yang terkait dengan file tertentu dihapus ke sistem operasi, atau semua buffer terbuka dibersihkan. Sistem operasi dapat menyimpan data sebelum menulisnya ke disk. Fitur commit-to-disk memastikan bahwa konten buffer yang dibersihkan tidak hilang jika ada kegagalan sistem.
Ada dua cara untuk menerapkan konten buffer ke disk:
Tautkan dengan file COMMODE. OBJ untuk menetapkan bendera penerapan global. Pengaturan default bendera global adalah
n
, untuk "tanpa penerapan."Atur bendera mode ke
c
denganfopen
atau_fdopen
.
File apa pun yang secara khusus dibuka dengan c
bendera atau n
berperilaku sesuai dengan bendera, terlepas dari status bendera penerapan/tanpa penerapan global.
Jika program Anda tidak secara eksplisit menutup aliran, aliran akan ditutup secara otomatis saat program berakhir. Namun, Anda harus menutup streaming ketika program Anda selesai dengannya, karena jumlah aliran yang dapat terbuka pada satu waktu terbatas. Lihat _setmaxstdio
untuk informasi tentang batas ini.
Input dapat mengikuti output secara langsung hanya dengan panggilan intervensi ke fflush
atau ke fungsi pemosisian file (fseek
, fsetpos
, atau rewind
). Input dapat diikuti dengan output tanpa panggilan intervensi ke fungsi penempatan file, jika operasi input menemukan akhir file.
Baca juga
Input dan output
Rutinitas runtime Universal C menurut kategori
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk