C ++ setvbuf () - Biblioteca standard C ++

Funcția setvbuf () din C ++ este utilizată pentru a schimba sau specifica modul tampon și dimensiunea bufferului.

setvbuf () prototip

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

setvbuf()Funcția schimbă modul de tamponare a fluxului de fișier dat la valoarea modului.

Dacă bufferul nu este nul, dimensiunea bufferului este size, altfel funcția alocă automat un buffer (pe baza valorii mărimii).

Este definit în fișierul antet.

setvbuf () Parametri

  • stream: Un flux de fișiere.
  • buffer: Pointer către buffer pentru a fi utilizat de flux.
  • mod: Mod tampon. Tipurile de moduri de tamponare sunt:
    • _IOFBF: tampon complet
    • _IOLBF: tamponare linie
    • _IONBF: nu există tampon
  • size: Dimensiunea bufferului în octeți.

setvbuf () Valoare returnată

În setvbuf()funcție returnează zero succes și nenul în caz de eșec.

Exemplu: Cum funcționează funcția 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; )

Când rulați programul, ieșirea va fi:

… Aceasta este a doua linie Aceasta este prima linie Aceasta este a doua linie

Articole interesante...