osx和/或linux上的进程范围内的命名属性

时间:2019-02-13 15:50:08

标签: c linux macos posix

我有一个包含许多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 :(得分:0)

您的问题有点令人困惑/含糊。首先,DLL是Windows术语。由于您列出的操作系统是基于UNIX的,因此您想要的术语可能是“库”。

接下来,您有一堆库。假定您正在实现一种设置属性的自定义方式,那么我假设您可以控制内置于这些各种库中的代码如何获取其数据。

您已经说过,这些值需要在单个过程中可用。为什么不创建一个类来管理所有这些设置注册表呢?我不知道为什么这很难。