Funkcija setvbuf () v jeziku C ++ se uporablja za spreminjanje ali določanje načina medpomnjenja in velikosti medpomnilnika.
prototip setvbuf ()
int setvbuf (FILE * tok, medpomnilnik char *, način int, velikost_t velikost);
setvbuf()
Funkcija spremeni način buffering danega toka datoteke v vrednosti načinu.
Če vmesni pomnilnik ni nič, je velikost vmesnega pomnilnika velikost, sicer funkcija samodejno dodeli medpomnilnik (glede na vrednost velikosti).
Določen je v datoteki glave.
parametri setvbuf ()
- tok: tok datotek.
- buffer: Kazalec na medpomnilnik, ki ga bo uporabljal tok.
- način: način medpomnjenja. Vrste medpomnilniških načinov so:
- _IOFBF: popolno medpomnjenje
- _IOLBF: medpomnjenje vrstic
- _IONBF: brez medpomnjenja
- velikost: velikost medpomnilnika v bajtih.
setvbuf () Vrnjena vrednost
Se setvbuf()
vrne nič o uspehu in različen od nič na neuspeh.
Primer: Kako deluje 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; )
Ko zaženete program, bo rezultat:
… To je druga vrstica To je prva vrstica To je druga vrstica