C ++ setvbuf () - Standardna knjižnica C ++

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

Zanimive Članki...