A setvbuf () függvény a C ++ nyelven a pufferelési mód és a puffer méretének megváltoztatására vagy megadására szolgál.
setvbuf () prototípus
int setvbuf (FÁJL * adatfolyam, char * puffer, int mód, méret_t méret);
A setvbuf()
függvény az adott fájlfolyam pufferelési módját a mode értékére változtatja.
Ha a puffer nem null, akkor a puffer mérete méret, különben a függvény automatikusan lefoglal egy puffert (a méret értéke alapján).
A fejlécfájlban van meghatározva.
setvbuf () paraméterek
- stream: fájlfolyam.
- puffer: Az áram által használt puffer mutatója.
- mód: pufferelési mód. A pufferelési módok típusai:
- _IOFBF: teljes pufferelés
- _IOLBF: vonal pufferelés
- _IONBF: nincs pufferelés
- méret: A puffer mérete bájtokban.
setvbuf () Visszatérési érték
A setvbuf()
függvény nulla eredményt ad eredmény esetén, és nem nullát ad eredmény esetén.
Példa: A setvbuf () függvény működése
#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; )
A program futtatásakor a kimenet a következő lesz:
… Ez a második sor Ez az első sor Ez a második sor