C ++ setvbuf () - C ++ Standardbibliothek

Die Funktion setvbuf () in C ++ wird verwendet, um den Puffermodus und die Größe des Puffers zu ändern oder anzugeben.

setvbuf () Prototyp

 int setvbuf (FILE * stream, char * buffer, int mode, size_t size);

Die setvbuf()Funktion ändert den Puffermodus des angegebenen Dateistreams auf den Wert mode.

Wenn der Puffer nicht null ist, ist die Größe des Puffers die Größe, andernfalls weist die Funktion automatisch einen Puffer zu (basierend auf dem Wert der Größe).

Es ist in der Header-Datei definiert.

setvbuf () Parameter

  • Stream: Ein Dateistream.
  • buffer: Zeiger auf den Puffer, der vom Stream verwendet werden soll.
  • Modus: Puffermodus. Die Arten von Puffermodi sind:
    • _IOFBF: vollständige Pufferung
    • _IOLBF: Zeilenpufferung
    • _IONBF: keine Pufferung
  • Größe: Die Größe des Puffers in Bytes.

setvbuf () Rückgabewert

Die setvbuf()Funktion gibt bei Erfolg Null und bei Fehler ungleich Null zurück.

Beispiel: Funktionsweise der Funktion 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; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

… Dies ist die zweite Zeile Dies ist die erste Zeile Dies ist die zweite Zeile

Interessante Beiträge...