std::basic_streambuf<CharT,Traits>:: pubsetbuf, std::basic_streambuf<CharT,Traits>:: setbuf
From cppreference.net
<
cpp
|
io
|
basic streambuf
|
public
:
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)
Appelle
setbuf
(
s, n
)
de la classe la plus dérivée.
2)
La version de la fonction de la classe de base n'a aucun effet. Les classes dérivées peuvent redéfinir cette fonction pour permettre la suppression ou le remplacement de la séquence de caractères contrôlée (le tampon) par un tableau fourni par l'utilisateur, ou pour toute autre finalité spécifique à l'implémentation.
Table des matières |
Paramètres
| s | - |
pointeur vers le premier
CharT
dans le tampon fourni par l'utilisateur
|
| n | - |
le nombre d'éléments
CharT
dans le tampon fourni par l'utilisateur
|
Valeur de retour
1)
La valeur de retour de
setbuf
(
s, n
)
.
2)
this
Exemple
Fournit un tampon de 10k pour la lecture. Sous Linux, l'utilitaire strace peut être utilisé pour observer le nombre réel d'octets lus.
Exécuter ce code
#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'; }
Sortie possible :
356010
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 158 | C++98 |
le comportement par défaut de
setbuf
n'était spécifié
que si gptr() n'est pas nul et n'est pas égal à egptr() |
spécifié comme sans opération
pour tous les cas |
Voir aussi
|
[virtual]
|
tente de remplacer la séquence de caractères contrôlée par un tableau
(fonction membre protégée virtuelle de
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
fournit un tampon fourni par l'utilisateur ou rend ce filebuf non tamponné
(fonction membre protégée virtuelle de
std::basic_filebuf<CharT,Traits>
)
|
|
[virtual]
|
tente de remplacer la séquence de caractères contrôlée par un tableau
(fonction membre protégée virtuelle de
std::strstreambuf
)
|
|
définit le tampon pour un flux de fichier
(fonction) |