gpt4 book ai didi

c++ - boost::匿名段上的进程间内存分配器

转载 作者:IT王子 更新时间:2023-10-29 00:35:16 29 4
gpt4 key购买 nike

我正在尝试使用类似 mmap 的段在 STL 容器上分配对象,因为我正在使用 boost::interprocess,它提供内存映射、分配器和匿名内存映射支持。
有点像this

我的问题是 anonymous_shared_memory 函数 here返回的东西看起来一半是映射文件,一半是共享内存(对 mmap 有意义 :)),尽管这两种样式都适用于 interprocess allocators这个看起来好像缺少一个 segment_manager 来进行实际的 block 分配。
因为它返回一个高级 mapped_region 已经映射到进程中,但没有管理器,我也无法看到 Hook segment_manager

最佳答案

mapped_region 是低级到中级对象,字面上只代表内存。 Managed shared memory , 然而

is an advanced class that combines a shared memory object and a mapped region that covers all the shared memory object,

所以它是拥有segment_manager的托管内存。

假设你想使用anonymous_shared_memory,首先你会按照例子得到memory_region,然后你会使用placement newthe beginning 处放置一个 segment_manager它的。它的constructor采用正在构建的内存段的大小。我不知道这是否包括管理器的大小,尽管我怀疑它包括在内。

关于c++ - boost::匿名段上的进程间内存分配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7080733/

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