我在boost managed_shared_memory中使用boost multi_index 我保存在容器中的一个数据是指向共享内存中分配的类的指针 容器和指针位于同一段中 容器用于多个过程 因此,一个进程可以创建此指针,另一个进程可以删除 我负责多次访问。
我的问题是在进程之间共享指针地址。
据我所知,每个进程都可以在不同进程的地址空间映射共享内存
所以我无法保存指针。
保存段和指针之间的偏移是个好主意吗?
bip::offset_ptr<MyType> MyTypeOffset = l_pMyType;
bip::offset_ptr<bip::managed_shared_memory> SegmentOffset = m_pSegmentManager;
OffsetFromSegment = MyTypeOffset - SegmentOffset;
正在从共享内存中读取此内容
MyType * pMytype = m_pSegmentManager + OffsetFromSegment;