如果该库被多个进程使用,是否可以将位于共享库 (.so) 中的全局变量用作单例?
例如初始值为 0,进程 1 递增 var 然后 proc2 递增 val 并打印它。
到目前为止,我的实验表明,这两个进程都保留了变量的副本,如果第一个增加它,第二个仍然会读取 0。所以行为不像 Windows DLL...
我在这里的一篇文章中读到,如果全局变量不是静态的(在 lib 中)并且它在 lib 标头中声明为 extern,则 var 对于所有进程都是唯一的。但到目前为止,我还没有能够做到这一点 - var 仍然是每个进程的副本。
有人可以对此提供很好的解释吗?以及如何做到这一点...