C ++ setvbuf () - C ++ standardowa biblioteka

Funkcja setvbuf () w C ++ służy do zmiany lub określenia trybu buforowania i rozmiaru bufora.

setvbuf () prototyp

 int setvbuf (PLIK * strumień, znak * bufor, tryb int, rozmiar_t rozmiar);

setvbuf()Funkcja zmienia tryb buforowania danego strumienia pliku do wartości trybu.

Jeśli bufor nie ma wartości null, rozmiar buforu jest równy rozmiarowi, w przeciwnym razie funkcja automatycznie przydziela bufor (na podstawie wartości rozmiaru).

Jest zdefiniowany w pliku nagłówkowym.

setvbuf () Parametry

  • stream: strumień plików.
  • bufor: wskaźnik do bufora, który ma być używany przez strumień.
  • tryb: tryb buforowania. Typy trybów buforowania to:
    • _IOFBF: pełne buforowanie
    • _IOLBF: buforowanie linii
    • _IONBF: bez buforowania
  • size: rozmiar bufora w bajtach.

setvbuf () Zwracana wartość

Te setvbuf()powroty zerowania na sukces i niezerowego na niepowodzenie.

Przykład: Jak działa funkcja 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; )

Po uruchomieniu programu wynik będzie następujący:

… To jest druga linia To jest pierwsza linia To jest druga linia

Interesujące artykuły...