如果缓冲区中没有足够的空间,我已经调查过该方法ifstream::readsome(buf, size)
不会读取所有字节。示例:
我有缓冲区:4096 字节。从文件开始的偏移量:6 个字节。我打电话 ifstream::readsome(buf, 4097)
。
函数的结果是 4090。所以如果我想读取剩下的七个字节,我必须调用
ifstream::readsome(buf + 4090, 7)
.
问题是:为什么这个功能会以这种方式实现?我没有看到处理超出内部方法的缓冲区的任何问题ifstream::readsome(buf, size)
。
编译器:MSVC 11(VS 2012)
谢谢你的回答。