Именованное свойство для всего процесса в OSX и / или Linux - PullRequest
0 голосов
/ 13 февраля 2019

У меня сложный проект с большим количеством библиотек DLL (некоторые из них являются подключаемыми модулями, т.е. они не могут свободно делиться именами символов компоновщика), и я ищу возможность разместить некоторую информацию, которую другие библиотеки DLL могли бы безопасно получить.Если предположить, что функция setenv поточно-ориентирована, я был бы полностью счастлив.

Итак, я ищу что-то вроде

int val = get_or_create_process_wide_property("my_prop", 10);
if (val == 10) {   //property just was created
}
else {   //property was set by somebody else and we can use it
}

shm_open, за исключением того, что это немного накладные расходы, требует shm_unlink, которыйЯ никогда не могу быть уверен, что он вызван, потому что процесс может завершиться сбоем.

1 Ответ

0 голосов
/ 13 февраля 2019

Ваш вопрос немного запутанный / расплывчатый.Во-первых, DLL - это термин Windows.Поскольку операционные системы, которые вы перечислили, основаны на UNIX, вы, вероятно, хотите использовать термин «библиотека».

Далее у вас есть несколько библиотек.Поскольку вы реализуете собственный способ установки свойств, я предполагаю, что вы контролируете, как код, встроенный в эти различные библиотеки, получает свои данные.

Вы сказали, что значения должны быть доступны в пределахединый процесс.Почему бы просто не создать класс для управления всем этим, какие-то настройки реестра?Я не уверен, почему это сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...