是否可以创建一个在进程之间共享的内存池(例如从Win32 中的CreateFileMapping
with INVALID_HANDLE_VALUE
),然后将该块内存用作堆?
我希望new
/delete
运算符(或malloc
/ free
)从该块中分配/释放内存(并对其进行通常的堆管理)。
谢谢。
编辑:我真正的问题很简单:现在我使用new
运算符来正常分配各种大系列的结构,但我希望这些结构在进程关闭后仍然存在。所以我想创建另一个进程,它几乎唯一的功能就是在主进程关闭时保存内存。
为此,我将在辅助进程中创建一块共享内存CreateFileMapping
,并在主进程中告诉那些new
/delete
用于分配结构以使用该块而不是进程的堆。
为了在主进程重新启动后恢复结构,我将向所有指针添加一个固定数量,以反映由MapViewOfFile
.