如何在存储文件之前查找可用内存

how to find the available memory before store a file?

本文关键字:查找 内存 存储文件      更新时间:2023-10-16

我想使用C++代码将一些文件保存在特定文件夹(/tmp/)中。存储文件之前

  1. 我需要检查是否有足够的内存可用。如果没有,我需要从存储中删除最旧的文件,然后我需要存储一个新文件。
  2. 我还需要知道代码中存储的文件详细信息才能访问它们。

我的实现是:

std::map<string IfileName, int iDetail>

我创建了一个 Map 实例,每当我创建文件数据时,我都会将详细信息存储在地图中。地图的问题有:

  1. 地图自动对文件名进行排序。所以我无法识别最旧的文件。
  2. 假设文件在存储中删除,则map还包含有关该文件的详细信息。

对于第一个问题,请尝试阅读此处。关于你问题的第二部分。为什么你不想使用对向量。在这种情况下,您可以使用push_back。

在某些时候,我使用地图和deque的组合来解决类似的问题。诀窍是每个value_type(在地图和双面)都需要使用交叉指针进行扩展。因此,当您使用某个键运行 map.find() 时,您收到的值具有指向 deque 中元素的指针。反之亦然。要找到您刚刚执行的最旧 (LRU) 文件 deque.pop_back(),请取消引用您进入地图的指针,查看详细信息并决定是否需要再删除一个文件。