Namensräume
Varianten
Aktionen

std::basic_streambuf<CharT,Traits>::pubsetbuf, std::basic_streambuf<CharT,Traits>::setbuf

Von cppreference.com
< cpp‎ | io‎ | basic streambuf
 
 
 
 
public:
virtual basic_streambuf<CharT, Traits>* pubsetbuf( char_type* s, std::streamsize n )
(1)
protected:
virtual basic_streambuf<CharT, Traits>* setbuf( char_type* s, std::streamsize n )
(2)
1) Ruft setbuf(s, n) der abgeleitetesten Klasse auf.
2) Die Basisklassenversion dieser Funktion hat keine Auswirkung. Die abgeleiteten Klassen können diese Funktion überschreiben, um die Entfernung oder den Ersatz der kontrollierten Zeichensequenz (des Puffers) durch ein vom Benutzer bereitgestelltes Array oder für jeden anderen implementierungsspezifischen Zweck zu ermöglichen.

Inhalt

[bearbeiten] Parameter

s - Zeiger auf das erste CharT im vom Benutzer bereitgestellten Puffer
n - die Anzahl der CharT-Elemente im vom Benutzer bereitgestellten Puffer

[bearbeiten] Rückgabewert

1) Der Rückgabewert von setbuf(s, n).
2) this

[bearbeiten] Beispiel

Stellt einen 10-KB-Puffer zum Lesen bereit. Unter Linux kann das Hilfsprogramm strace verwendet werden, um die tatsächlich gelesene Byteanzahl zu beobachten.

#include <fstream>
#include <iostream>
#include <string>
 
int main()
{
    int cnt = 0;
    std::ifstream file;
    char buf[1024 * 10 + 1];
 
    file.rdbuf()->pubsetbuf(buf, sizeof buf);
 
    file.open("/usr/share/dict/words");
 
    for (std::string line; getline(file, line);)
        ++cnt;
 
    std::cout << cnt << '\n';
}

Mögliche Ausgabe

356010

[bearbeiten] Fehlerberichte

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 158 C++98 das Standardverhalten von setbuf war nur spezifiziert
wenn gptr() nicht null ist und nicht gleich egptr() ist
als No-Op spezifiziert
für alle Fälle

[bearbeiten] Siehe auch

[virtuell]
versucht, die gesteuerte Zeichensequenz durch ein Array zu ersetzen
(virtuelle geschützte Memberfunktion von std::basic_stringbuf<CharT,Traits,Allocator>) [bearbeiten]
[virtuell]
stellt einen vom Benutzer bereitgestellten Puffer bereit oder macht diesen Filebuf unbuffered
(virtuelle geschützte Memberfunktion von std::basic_filebuf<CharT,Traits>) [edit]
[virtuell]
versucht, die gesteuerte Zeichensequenz durch ein Array zu ersetzen
(virtuelle geschützte Memberfunktion von std::strstreambuf) [bearbeiten]
setzt den Puffer für einen Dateistream
(function) [bearbeiten]