Проверить, если Boost Interprocess managed_shared_memory уже существует?
Есть ли способ (кроме попробовать-поймать), чтобы определить, является ли boost::interprocess:managed_shared_memory
регион с определенным именем уже существует?
Я знаю, что если я выделю вектор Interprocess в области managed_shared_memory, я смогу проверить его существование с помощью managed_shared_memory::find(), но, похоже, не существует способа проверить, существует ли сама область managed_shared_memory.
1 ответ
Вы можете использовать конструктор с boost::interprocess::open_or_create
,
Если вы хотите узнать, что из двух произошло, вы можете использовать boost::interprocess::open_only
или же boost::interprocess::create_only
но вы должны добавить "внешнюю" синхронизацию сверху: C++ синхронизировать разделяемую память при чтении