C ++ setvbuf () - Perpustakaan Standard C ++

Fungsi setvbuf () dalam C ++ digunakan untuk mengubah atau menentukan mod penyangga dan ukuran penyangga.

prototaip setvbuf ()

 int setvbuf (FILE * stream, char * buffer, int mode, size_t size);

Yang setvbuf()fungsi perubahan mod buffering aliran fail yang diberi kepada nilai mod.

Sekiranya penyangga tidak kosong, ukuran penyangga adalah ukuran, jika tidak fungsi secara automatik mengalokasikan penyangga (berdasarkan nilai ukuran).

Ia ditakrifkan dalam fail tajuk.

setvbuf () Parameter

  • aliran: Aliran fail.
  • penyangga: Penunjuk ke penyangga yang akan digunakan oleh aliran.
  • mod: mod penimbunan. Jenis mod penyangga adalah:
    • _IOFBF: penyangga penuh
    • _IOLBF: penyangga baris
    • _IONBF: tiada penyangga
  • size: Ukuran buffer dalam bait.

setvbuf () Nilai pulangan

The setvbuf()pulangan fungsi sifar pada kejayaan dan bukan sifar pada kegagalan.

Contoh: Bagaimana fungsi setvbuf () berfungsi

 #include #include #define SIZE 1024 using namespace std; int main() ( char buffer(SIZE) = "… "; char str() = "This is first lineThis is second line"; FILE *fp = fopen("test.txt","wb+"); /* no buffering, buffer remains unchanged */ setvbuf(fp,buffer,_IONBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* line buffering, only a single line is buffered */ setvbuf(fp,buffer,_IOLBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* full buffering, all the contents are buffered */ setvbuf(fp,buffer,_IOFBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; fclose(fp); return 0; )

Semasa anda menjalankan program, outputnya adalah:

… Ini adalah baris kedua Ini adalah baris pertama Ini adalah baris kedua

Artikel menarik...