Ц ++ сетбуф () - Ц ++ стандардна библиотека

Функција сетбуф () у Ц ++ поставља интерни бафер који ће се користити за И / О операције у току.

прототип сетбуф ()

 воид сетбуф (ФИЛЕ * ток, цхар * бафер);

Ако ме успремник није нулл, еквивалентно је позивању сетвбуф (стреам, буффер, _ИОФБФ, БУФСИЗ).

Ако је ме успремник нулл, еквивалентно је позивању сетвбуф (стреам, НУЛЛ, _ИОНБФ, 0). У овом случају је међуспремник искључен.

Дефинисано је у заглављу датотеке.

параметри сетбуф ()

  • ток: ток датотека.
  • бафер: показивач на бафер који може бити нула или не. Ако је нулл, међуспремник је искључен, иначе би требао имати најмање БУФСИЗ бајтова.

сетбуф () Повратна вредност

Ниједан

Следећа 2 примера илуструју употребу функције сетбуф (). Оба ова програма користе рад датотека. У првом примеру, бафер се поставља помоћу сетбуф () за интерно складиштење садржаја датотеке.

У следећем примеру, изјава setbuf(fp, NULL)искључује међуспремник. Дакле, за читање садржаја датотеке користи се фреад ().

Пример 1: Како функционише функција сетбуф ()

 #include #include using namespace std; int main () ( char str() = "Buffered Stream"; char buffer(BUFSIZ); FILE *fp; fp=fopen ("test.txt","wb"); setbuf(fp,buffer); fwrite(str, sizeof(str), 1, fp); fflush(fp); fclose(fp); cout << buffer; return 0; )

Када покренете програм, излаз ће бити:

 Буферовани ток

Пример 2: функција сетбуф () са искљученим међуспремником

 #include #include using namespace std; int main () ( char str() = "Unbuffered Stream"; char strFromFile(20); FILE *fp; fp=fopen ("test.txt","wb+"); setbuf(fp,NULL); fwrite(str, sizeof(str), 1, fp); fflush(fp); /* We need to rewind the file pointer and read the file because the data from test.txt isn't saved in any buffer */ rewind(fp); fread(strFromFile, sizeof(strFromFile), 1, fp); fclose(fp); cout << strFromFile; return 0; )

Када покренете програм, излаз ће бити:

 Небуферисани ток

Занимљиви Чланци...