【发布时间】:2014-02-06 09:33:27
【问题描述】:
我创建了一个 Boost Shared 内存,用于共享向量。
分享已完成。
但是,我不明白向量是如何被推入共享内存的。
我在写入过程中对共享内存执行push_back。所以向量像堆栈push 一样被推入共享内存,按照 LIFO 顺序?
另一个应用程序,阅读器,以下列方式检索向量:
managed_shared_nmemory segment (open_only, "Shared_mem_name");
Vector = segment.find<VECTOR_TYPE>("Vector_name").first;
if (Vector != NULL)
{
//CODDE
}
现在在这里,我正在阅读哪个矢量。最后推入的(最新的)?如果我正在阅读它,是否意味着向量被弹出?即读取后它是否仍然存在于共享内存中,如果是这样,一段时间后共享内存是否会溢出,我将如何阻止它?我在文档中没有看到任何关于它的内容...
【问题讨论】:
-
检查您是否有正确的进程同步并且正在使用
VECTOR_TYPE中的IPC 分配器。我建议您从文档中的示例开始。
标签: c++ boost vector ipc boost-interprocess