C ++ setvbuf () - C ++ szabványos könyvtár

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

érdekes cikkek...