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

C ++ funkcija setbuf () nustato vidinį buferį, naudojamą srauto įvesties / išvesties operacijoms.

setbuf () prototipas

 void setbuf (FILE * srautas, char * buferis);

Jei buferis nėra nulinis, jis prilygsta setvbuf iškvietimui (srautas, buferis, _IOFBF, BUFSIZ).

Jei buferis yra nulinis, jis yra lygiavertis setvbuf iškvietimui (srautas, NULL, _IONBF, 0). Tokiu atveju buferis yra išjungtas.

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

setbuf () parametrai

  • srautas: failų srautas.
  • buferis: žymeklis į buferį, kuris gali būti niekinis arba ne. Jei jis yra nulinis, buferis išjungtas, kitaip jis turėtų būti bent BUFSIZ baitų.

setbuf () Grąžinimo vertė

Nė vienas

Žemiau pateikti 2 pavyzdžiai iliustruoja „setbuf“ () funkcijos naudojimą. Abi šios programos naudoja failų valdymą. Pirmajame pavyzdyje buferis nustatomas naudojant „setbuf“ () failo turiniui laikyti viduje.

Kitame pavyzdyje teiginys setbuf(fp, NULL)išjungia buferį. Taigi norint perskaityti failo turinį, naudojama „fread“ ().

1 pavyzdys: Kaip veikia funkcija setbuf ()

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

Kai paleisite programą, išvestis bus:

 Buferinis srautas

2 pavyzdys: funkcija setbuf () su buferiu išjungta

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

Kai paleisite programą, išvestis bus:

 Neperkeltas srautas

Įdomios straipsniai...