C ++ setvbuf () - C ++ Standardbibliotek

Setvbuf () -funktionen i C ++ används för att ändra eller specificera buffertläget och buffertens storlek.

setvbuf () prototyp

 int setvbuf (FIL * stream, char * buffer, int mode, size_t size);

Den setvbuf()funktionen ändrar buffert steg i respektive fil ström till ett värde av läget.

Om bufferten inte är noll är storleken på bufferten storlek, annars tilldelar funktionen automatiskt en buffert (baserat på storleksvärdet).

Det definieras i rubrikfilen.

setvbuf () Parametrar

  • stream: En filström.
  • buffert: pekare till bufferten som ska användas av ström.
  • läge: Buffertläge. Typerna av buffertlägen är:
    • _IOFBF: full buffring
    • _IOLBF: linjebuffring
    • _IONBF: ingen buffring
  • storlek: Storleken på bufferten i byte.

setvbuf () Returvärde

De setvbuf()funktionen returnerar noll på framgång och noll på misslyckande.

Exempel: Hur funktionen setvbuf () fungerar

 #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; )

När du kör programmet blir resultatet:

… Detta är andra raden Detta är första raden Detta är andra raden

Intressanta artiklar...