代码之家  ›  专栏  ›  技术社区  ›  dev_null

OSX和/或Linux上的进程范围命名属性

  •  1
  • dev_null  · 技术社区  · 5 年前

    我有一个复杂的项目,有很多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,我永远无法确定调用它是因为进程可能崩溃。

    0 回复  |  直到 5 年前
        1
  •  0
  •   Joseph Larson    5 年前

    你的问题有点混乱/含糊不清。首先,dll是windows术语。由于您列出的操作系统是基于Unix的,因此您需要的术语可能是“库”。

    接下来,你有一堆图书馆。在实现自定义的属性设置方式时,我假定您可以控制构建到这些库中的代码如何获取其数据。

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