C ++ setvbuf () - C ++ Pustaka Standar

Fungsi setvbuf () di C ++ digunakan untuk mengubah atau menentukan mode buffering dan ukuran buffer.

setvbuf () prototipe

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

The setvbuf()Fungsi mengubah modus buffering streaming file diberikan dengan nilai modus.

Jika buffer tidak nol, ukuran buffer adalah ukuran, jika tidak fungsi secara otomatis mengalokasikan buffer (berdasarkan nilai ukuran).

Ini didefinisikan dalam file header.

setvbuf () Parameter

  • aliran: Aliran file.
  • buffer: Arahkan ke buffer yang akan digunakan oleh streaming.
  • mode: Mode penyangga. Jenis mode buffering adalah:
    • _IOFBF: buffering penuh
    • _IOLBF: buffering baris
    • _IONBF: tanpa buffering
  • size: Ukuran buffer dalam byte.

setvbuf () Mengembalikan nilai

The setvbuf()fungsi kembali nol pada keberhasilan dan nol pada kegagalan.

Contoh: Cara kerja fungsi setvbuf ()

 #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; )

Saat Anda menjalankan program, hasilnya adalah:

… Ini baris kedua Ini baris pertama Ini baris kedua

Artikel yang menarik...