内存已满时文件读取失败

时间:2012-10-22 14:09:36

标签: c++ c linux file-io

我的文件A.txt驻留在特定目录中,并且此目录的大小会动态增加,因为某些日志文件正在保存。每次我打开并读取此文件,但问题是当内存已满时我无法打开并读取文件

这里我无法增加内存的大小。有人可以通过提供更好的想法来帮助

很抱歉提出这个一般性问题。

2 个答案:

答案 0 :(得分:3)

如果整个文件不适合内存,请不要将整个文件粘贴到内存中;一次处理一行。或者获得更多记忆。

答案 1 :(得分:1)

将您的日志文件分成几部分。将单独的文件保存在分层组织的文件系统中,并系统地命名它们。因此,如果您之前有一天的单个文件,

  

log121022.txt

说,

而是创建一个文件夹log120122并在其中存储

  

log12102201.txt,log12102202.txt等

现在你要为一天中的每个小时创建一个单独的文件。同样的原则适用于将数周或数月分成几天等。然后在您的程序中读取和写入您需要的较小文件。要完成所有这些操作,你需要编写一个循环,而在你打开文件之前,但这个额外的代码并不是很复杂,显然,花一点时间编写它比不断耗尽内存要好得多。 / p>