Проверить, если Boost Interprocess managed_shared_memory уже существует? - PullRequest
0 голосов
/ 01 мая 2018

Есть ли способ (кроме try-catch) определить, существует ли область boost::interprocess:managed_shared_memory с конкретным именем?

Я знаю, что если я выделю вектор Interprocess в области managed_shared_memory, я смогу проверить его существование с помощью managed_shared_memory :: find (), но, похоже, нет способа проверить, существует ли сама область managed_shared_memory.

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете использовать конструктор с boost::interprocess::open_or_create.

Если вы хотите узнать, что из двух произошло, вы можете использовать boost::interprocess::open_only или boost::interprocess::create_only, но вам нужно будет добавить «внешнюю» синхронизацию сверху: c ++ Синхронизировать разделяемую память при чтении

...