将ifstream放在非常大的文件中

时间:2010-09-02 18:04:11

标签: c++ file-io

我必须处理非常大的日志文件(数百GB),为了加快速度,我想在我可用的所有核心上拆分处理。使用seekg和tellg我能够在相对较小的文件中估计块大小,并将每个线程放在这些块的开头,但是当它们变大时,索引会溢出。

使用C ++ ifstreams和Linux时,如何在非常大的文件中定位和索引?

最好的问候。

2 个答案:

答案 0 :(得分:2)

最简单的方法是在64位操作系统上进行处理,并使用64位编译器编写代码。这将(至少通常)为您提供64位类型的文件偏移,因此溢出不再发生,生活也很好。

答案 1 :(得分:1)

您有两种选择:

  1. 使用64位操作系统。
  2. Use OS specific functions