【发布时间】:2014-07-30 16:02:50
【问题描述】:
我想在 C++ 中使用 mmap 将复杂对象序列化为二进制文件。我所说的复杂对象是指包含指针的对象(如树数据结构)。
这个想法是以后能够以这种方式使用 mmap 从文件中加载对象:
my_structure obj = (my_structure)mmap(...)
出于性能目的,无需重新加载所有数据结构(因为它是一个巨大的数据结构!)。 我在互联网上找到的所有示例都非常简化(例如如何将 int 放入文件中......)而且我没有找到任何关于如何编写与包含指针的对象相对应的内存?我们该怎么做呢?
注意:我在 mac osx 上
【问题讨论】:
-
首先,不要持久化指针,因为它们在重新加载后可能会悬空。
-
@EricZ:我有点猜测这正是他想要使用 mmap 的原因,他可能觉得有一种方法可以为一块内存获取相同的基地址,这将重新加载时使指针开箱即用。
-
你在google上搜索过“二进制序列化c++”吗?看看下面的答案
标签: c++