Я использую Boost Shared Memory для совместного использования вектора между процессами.
В клиенте, как я могу, как только я попытаюсь открыть разделяемую память и прочитать из нее вектор, понять, недействительна ли память или это не то, что я ищу.
Будет ли Open_Only
выйти из строя, если сегмент памяти не существует, и если да, то как мне отловить этот сбой?
Также предполагается удалить сегмент разделяемой памяти, если на него нет ссылок. Однако в моем случае, даже когда и клиент, и сервер выключены, и ничто другое не обращается к общей памяти, сегмент остается в папке Boost Interprocess в данных программы с некоторыми данными. Таким образом, при следующем запуске клиента у него нет проблем с открытием сегмента, поэтому он думает, что получает доступ к правильным данным, хотя на самом деле данных для совместного использования нет.
Добрый совет. Спасибо.