C ++ setvbuf () - C ++ standardna biblioteka

Funkcija setvbuf () u C ++ koristi se za promjenu ili specificiranje načina međuspremnika i veličine međuspremnika.

prototip setvbuf ()

 int setvbuf (FILE * stream, char * međuspremnik, int način, size_t size);

setvbuf()Funkcija mijenja način puferski zadanog file potok u vrijednosti modu.

Ako međuspremnik nije null, veličina međuspremnika je veličina, u suprotnom funkcija automatski dodjeljuje međuspremnik (na temelju vrijednosti veličine).

Definirano je u datoteci zaglavlja.

parametri setvbuf ()

  • stream: tok datoteke.
  • međuspremnik: pokazivač na međuspremnik koji će koristiti tok.
  • način: način puferiranja. Vrste načina međuspremnika su:
    • _IOFBF: potpuno puferiranje
    • _IOLBF: međuspremnik reda
    • _IONBF: nema međuspremnika
  • veličina: veličina međuspremnika u bajtovima.

setvbuf () Povratna vrijednost

Na setvbuf()funkcija vraća nulu na uspjeh i različit od nule na neuspjeh.

Primjer: Kako funkcionira funkcija 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; )

Kada pokrenete program, izlaz će biti:

… Ovo je drugi redak Ovo je prvi redak Ovo je drugi redak

Zanimljivi članci...