Функција сетвбуф () у језику Ц ++ користи се за промену или специфицирање режима баферирања и величине бафера.
прототип сетвбуф ()
инт сетвбуф (ФИЛЕ * ток, цхар * бафер, инт режим, сизе_т сизе);
setvbuf()
Функција мења пуферски режим датог фајла потока у вредности од режима.
Ако бафер није нулл, величина бафера је величина, у супротном функција аутоматски додељује бафер (на основу вредности величине).
Дефинисано је у заглављу датотеке.
параметри сетвбуф ()
- ток: ток датотека.
- бафер: показивач на бафер који ће користити ток.
- режим: режим пуферирања. Типови начина пуферирања су:
- _ИОФБФ: потпуно баферисање
- _ИОЛБФ: баферисање линије
- _ИОНБФ: нема међуспремника
- величина: величина бафера у бајтовима.
сетвбуф () Повратна вредност
На setvbuf()
функција враћа нулу на успеху и нуле на неуспех.
Пример: Како функционише функција сетвбуф ()
#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; )
Када покренете програм, излаз ће бити:
… Ово је други ред Ово је први ред Ово је други ред