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