C ++ setvbuf () - C ++ Standardbibliotek

Setvbuf () -funktionen i C ++ bruges til at ændre eller specificere buffertilstanden og størrelsen på bufferen.

setvbuf () prototype

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

Den setvbuf()funktion ændrer buffering sekvenser i den pågældende fil strøm til værdien af funktionen.

Hvis bufferen ikke er nul, er størrelsen af ​​bufferen størrelse, ellers tildeler funktionen automatisk en buffer (baseret på størrelsesværdien).

Det er defineret i header-fil.

setvbuf () Parametre

  • stream: En filstream.
  • buffer: Markør til bufferen, der skal bruges af stream.
  • tilstand: Bufferingstilstand. Typerne af bufferingstilstande er:
    • _IOFBF: fuld buffering
    • _IOLBF: linjebuffering
    • _IONBF: ingen buffering
  • størrelse: Størrelsen af ​​bufferen i byte.

setvbuf () Returværdi

De setvbuf()funktion returnerer nul på succes og ikke-nul på fiasko.

Eksempel: Sådan fungerer setvbuf () -funktionen

 #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ører programmet, vil output være:

… Dette er anden linje Dette er første linje Dette er anden linje

Interessante artikler...