std::basic_streambuf::pubsetbuf, std::basic_streambuf::setbuf
来自cppreference.com
< cpp | io | basic streambuf
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
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) | |
调用
2) setbuf(s, n)
最派生类原文:
Calls
setbuf(s, n)
of the most derived class这个函数的基类版本没有任何效果。用户提供的数组,派生类可以重载这个函数来允许拆除或更换的控制字符序列(缓冲区),或任何其他特定于实现的目的.
原文:
The base class version of this function has no effect. The derived classes may override this function to allow removal or replacement of the controlled character sequence (the buffer) with a user-provided array, or for any other implementation-specific purpose.
目录 |
[编辑] 参数
s | - | 指针的第一个字节中的用户提供的缓冲区
原文: pointer to the first byte in the user-provided buffer |
n | - | 用户提供的缓冲区中的字节数
原文: the number of bytes in the user-provided buffer |
[编辑] 返回值
*this
[编辑] 示例
提供一个10K的缓冲区的读取。在Linux上,与strace实用程序可用于观察实际读取的字节数
原文:
provide a 10k buffer for reading. On linux, the strace utility may be used to observe the actual number of bytes read
#include <fstream> #include <iostream> #include <string> int main() { int cnt=0; std::ifstream file; char buf[10241]; file.rdbuf()->pubsetbuf(buf, sizeof buf); file.open("/usr/share/dict/words"); for (std::string line; getline(file, line); ) { cnt++; } std::cout << cnt << '\n'; }
[编辑] 另请参阅
[虚]</div></div>
|
为用户提供的缓冲或无缓冲将这个filebuf 原文: provides user-supplied buffer or turns this filebuf unbuffered (虚拟保护成员函数of std::basic_filebuf )
|