假设我这样做(一个人为的例子):
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
ifstream ifs(argv[1]);
char ch;
while(ifs.read(&ch, 1)) {
cout << ch;
}
}
我假设(希望)iostream 库在这里做了一些内部缓冲,并且不会在操作系统级别将其变成无数的单字节文件读取操作。
有没有办法:
a)找出 ifstream 内部缓冲区的大小?
b)改变 ifstream 内部缓冲区的大小?
我正在编写一个文件过滤器,它需要以小块读取数 GB 的文件,我想尝试不同的缓冲区大小,看看它是否会影响性能。