在进程之间共享指针

时间:2014-04-07 16:03:51

标签: c++ shared-memory boost-interprocess

我在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;

0 个答案:

没有答案