给ifstream定源和ofstream目标,从streampos(offset)源开始复制 N 个字节的最快方法是什么?
编辑
我想到的最简单的方法是使用一个简单的缓冲区:
char *buf = new char[N];
is.seekg(offset);
is.read(buf, N);
os.write(buf, N);
delete buf;
Run Code Online (Sandbox Code Playgroud)
或更小的固定大小的缓冲区:
char buf[BUF_SIZE];
is.seekg(offset);
while (N > 0) {
int n = min(BUF_SIZE, N);
is.read(buf, n);
os.write(buf, n);
N -= n;
}
Run Code Online (Sandbox Code Playgroud)
我想知道还有什么比这更快或更有效的方法。