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)
Llama
setbuf
(
s, n
)
de la clase más derivada.
2)
La versión de la clase base de esta función no tiene efecto. Las clases derivadas pueden sobrescribir esta función para permitir la eliminación o reemplazo de la secuencia de caracteres controlada (el búfer) con un arreglo proporcionado por el usuario, o para cualquier otro propósito específico de la implementación.
Contenidos |
Parámetros
| s | - |
puntero al primer
CharT
en el búfer proporcionado por el usuario
|
| n | - |
el número de elementos
CharT
en el búfer proporcionado por el usuario
|
Valor de retorno
1)
El valor de retorno de
setbuf
(
s, n
)
.
2)
this
Ejemplo
Proporciona un búfer de 10k para lectura. En Linux, la utilidad strace puede usarse para observar el número real de bytes leídos.
Ejecutar este código
#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'; }
Salida posible:
356010
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 158 | C++98 |
el comportamiento por defecto de
setbuf
solo se especificaba
si gptr() no es nulo y no es igual a egptr() |
especificado como no-operación
para todos los casos |
Véase también
|
[virtual]
|
intenta reemplazar la secuencia de caracteres controlada con un array
(función miembro protegida virtual de
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
proporciona un búfer suministrado por el usuario o convierte este filebuf en no almacenado en búfer
(función miembro protegida virtual de
std::basic_filebuf<CharT,Traits>
)
|
|
[virtual]
|
intenta reemplazar la secuencia de caracteres controlada con un array
(función miembro protegida virtual de
std::strstreambuf
)
|
|
establece el búfer para un flujo de archivo
(función) |