【发布时间】:2012-07-12 09:22:15
【问题描述】:
我正在使用 ifstream 在 C++ 中实现一个程序,该程序必须在大文件 (~1TB) 中查找。但是,这在读取 2GB 后失败。有没有办法获取文件位置,即使是大文件?我为 32 位 windows 机器编译。
std::ifstream f;
f.open( filename.c_str(), std::ifstream::in | std::ifstream::binary );
while(true) {
std::cout << (uint64_t)(f.tellg()) << std::endl;
//read data
}
【问题讨论】:
-
我不知道这是否真的改变了任何东西,但是您是否尝试过使用纯 C 替代读取文件?
-
@stefan 有普通的 C 文件位置处理程序,其大小大于 32 位?
-
@triclosan 正如我所说:我不知道,这只是一个想法