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ė