gpt4 book ai didi

c++ - 使用 fstream 对象在 C++ 中模拟分页文件系统

转载 作者:行者123 更新时间:2023-11-28 08:26:16 24 4
gpt4 key购买 nike

我需要用 C++ 模拟分页文件系统。需要在一个页面(文件 block )中存储多个元组,每个页面末尾的目录指向页面上每个元组的偏移量。我还需要在元组中存储可变长度属性。使用 STL 容器并将其序列化到磁盘是最好的方法吗?

谢谢

有关我正在寻找的内容的更多详细信息-我已经创建了一个文件 - 比如说 employee.day 有 4096 字节的 block 。我需要在每个 block 中存储元组,每个 block 的末尾都有一个目录,用于存储每个元组的地址和偏移量。每次我插入一个新的元组时,我都需要找到一个有足够可用空间的页面并将其插入页面并更新页面末尾的目录。我的元组可以是可变长度的,因此我还需要将元组的长度存储在文件中。我在程序运行期间将表的架构加载到 vector 中。我正在寻找一些关于如何仅使用 fstream 中的读写操作将元组存储到页面中的想法,

最佳答案

没有更多细节,我会说为页面制作一个vectorseekp/seekg到正确的位置,并且序列化/反序列化页面

file << v.size();
file.write( &v[0], v.size() * sizeof( my_tuple ) );

file >> page_size;
v.resize( page_size );
file.read( &v[0], v.size() * sizeof( my_tuple ) );

关于c++ - 使用 fstream 对象在 C++ 中模拟分页文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3964657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com