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

我知道是否在Managed_shared_memory区域内分配了一个进程间 vector ,我可以使用managed_shared_memory::find()来检查它是否存在,但是似乎没有一种方法来检查managed_shared_memory区域本身是否存在。

最佳答案

您可以将构造函数与boost::interprocess::open_or_create一起使用。

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

关于c++ - 检查Boost Interprocessmanaged_shared_memory是否已经存在?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50114321/

10-12 21:06