首页 > 解决方案 > 检查 Boost Interprocess managed_shared_memory 是否已经存在?

问题描述

有没有办法(除了 try-catch)来确定boost::interprocess:managed_shared_memory具有特定名称的区域是否已经存在?

我知道如果我在 managed_shared_memory 区域内分配一个进程间向量,我可以使用 managed_shared_memory::find() 检查它是否存在,但似乎没有办法检查 managed_shared_memory 区域本身是否存在。

标签: c++boostboost-interprocess

解决方案


您可以将构造函数与boost::interprocess::open_or_create.

如果您想知道两者中的哪一个发生了,您可以使用,boost::interprocess::open_only或者boost::interprocess::create_only但您将在顶部添加“外部”同步:c++ Synchronize shared memory when reading


推荐阅读