Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Pomógł: GoldWolf
Język C++

setvbuf

[funkcja] Umożliwia przypisanie bufora na dane o podanej wielkości do wskazanego strumienia oraz określenie sposobu jego użycia.

Składnia

C/C++
#include <cstdio>

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

Argumenty

ArgumentOpis
streamOkreśla strumień na którym ma zostać wykonana operacja.
bufferAdres do bufora na dane, który ma zostać przypisany do wskazanego strumienia.
Bufor nie może być mniejszy niż wartość czwartego argumentu funkcji (argument size).
Jeżeli wartość tego argumentu zostanie ustawiona na NULL, to funkcja automatycznie utworzy bufor na dane.
modeOkreśla tryb buforowania strumienia. Poniższa tabela określa wartości, jakie może przyjmować niniejszy argument.
WartośćOpis
_IOFBFPełne buforowanie
  • Odczyt
    Dane do bufora są wczytywane ze strumienia aż do zapełnienia bufora. Odczyt danych do bufora następuje gdy bufor jest pusty i wywołana została operacja odczytu danych.
  • Zapis
    Operacje zapisu na strumieniu są buforowane aż do zapełnienia bufora. W przypadku zapełnienia bufora wykonywana jest operacja zapisu. Bufor jest przepisywany do strumienia w przypadku wywołania funkcji » standard Cfflush.
_IOLBFBuforowanie wierszami
  • Odczyt
    Dane do bufora są wczytywane ze strumienia aż do zapełnienia bufora lub napotkania znaku nowego wiersza. Odczyt danych do bufora następuje gdy bufor jest pusty.
  • Zapis
    Operacje zapisu na strumieniu są buforowane do zapełnienia bufora lub napotkania znaku nowego wiersza. W przypadku zapełnienia bufora lub napotkania znaku nowego wiersza wykonywana jest operacja zapisu. Bufor jest przepisywany do strumienia w przypadku wywołania funkcji » standard Cfflush.
_IONBFBrak buforowania
Operacje odczytu/zapisu na strumieniu nie podlegają buforowaniu. Wartości argumentów buffer oraz size są ignorowane.
sizeRozmiar bufora na dane (wyrażony w bajtach), który został przekazany do funkcji poprzez argument buffer. Jeżeli argument buffer jest równy NULL to wówczas wartość niniejszego argumentu określa rozmiar bufora, jaki powinien zostać automatycznie utworzony przez funkcję.

Zwracana wartość

Zwraca wartość 0 w przypadku sukcesu. Funkcja zwraca wartość różną od zera w przypadku wystąpienia błędu.

Opis szczegółowy

Funkcja umożliwia przypisanie bufora na dane o podanej wielkości do wskazanego strumienia oraz określenie sposobu jego użycia.

Przykład

C/C++
#include <cstdio>

int main()
{
    FILE * plik = fopen( "Plik1.txt", "w" );
    if( plik )
    {
        setvbuf( plik, NULL, _IOFBF, 1024 );
        // (...)Operacje na pliku
        fclose( plik );
    }
    return 0;
}

Zagadnienia powiązane

setbufUmożliwia przypisanie bufora na dane do wskazanego strumienia. (funkcja)
fflushWymusza przeniesienie buforowanych danych do strumienia. (funkcja)

Linki zewnętrzne