C ++ setvbuf () - C ++ standartinė biblioteka

Funkcija setvbuf () C ++ naudojama pakeisti arba nurodyti buferio režimą ir buferio dydį.

setvbuf () prototipas

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

setvbuf()Funkcija keičia buferinė režimą tikro failo srautas į režimu vertės.

Jei buferis nėra nulinis, buferio dydis yra dydis, kitaip funkcija automatiškai paskirsto buferį (atsižvelgiant į dydžio vertę).

Tai apibrėžta antraštės faile.

setvbuf () parametrai

  • srautas: failų srautas.
  • buferis: srauto naudojamas buferio žymeklis.
  • režimas: buferio režimas. Buferio režimų tipai yra šie:
    • _IOFBF: visas buferis
    • _IOLBF: linijos buferis
    • _IONBF: nėra buferio
  • dydis: buferio dydis baitais.

setvbuf () Grąžinimo vertė

Į setvbuf()funkcija grąžina nulį, sėkmės ir nulio dėl gedimo.

Pavyzdys: Kaip veikia setvbuf () funkcija

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

Kai paleisite programą, išvestis bus:

… Tai yra antroji eilutė Tai yra pirmoji eilutė Tai yra antroji eilutė

Įdomios straipsniai...