【问题标题】:Seeking in large files with ifstream使用 ifstream 查找大文件
【发布时间】: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 正如我所说:我不知道,这只是一个想法

标签: c++ file-io fstream


【解决方案1】:

由于您在 32 位平台上编译,如果您使用 fstream,您将获得 32 位访问权限。要访问大文件,您需要使用平台相关的解决方案:

【讨论】:

  • 我将使用这些功能。谢谢!
猜你喜欢
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 2011-09-09
  • 1970-01-01
相关资源
最近更新 更多