C++文件流默认的文件缓存是4096字节,有时候根据需求可能要扩大或减少。
此时可以使用类方法rdbuf->pubsetbuf(buf, size);
NOTE 1:这里要是char缓冲区,如果是静态数组,大小有限制,如果动态,很危险。
NOTE 2:意义未必很大,未必很提高速度。
C++中rdbuf重定向流的经典例子:
#include <iostream>
#include <fstream>
int main(void)
{
std::ifstream log("out.log");
std::streambuf* x = cout.rdbuf(log.rdbuf()); // 返回cout的流对象指针,使cout重定向到log文件中
std::cout << "Test/n"; // 写入到文件中
std::cout.rdbuf(x); // 恢复cout的流对象指针
std::cout << "Test2/n"; // 写入cout
return 0;
}