[英]Updating a global variable in shared library used by more than one process
我在共享库(libshared.so)中有一个全局变量。该库可以被多个进程访问,而这些进程正在访问库中存在的全局变量。 我面临的问题是一个进程对全局变量(存在于共享库中)的更新不会反映到其他独立进程访问的变量中。
我在网上搜索有关此问题的信息,但没有任何合适的方法来纠正此问题。我也知道只有文本/代码段可以共享,每个进程都可以获取数据段的本地副本。
请提出实现此要求的解决方案。我想更新共享库中的全局变量。
环境:-Linux,ARM
谢谢阿米特·库马尔
如果多个进程使用相同的共享库,则它们将映射相同的代码段,但是每个进程都将拥有自己的可写数据段副本。 因此,“全局”在这里仅表示一个进程及其地址空间中的全局。
仔细想想:任何其他实现都将导致灾难,例如,标准C库中的errno
是“全局”的,并且您绝对不想在这里读取由随机的其他进程产生的错误。
如果这是您自己的库,并且确实需要在进程之间共享数据,请查看共享内存(例如,在linux shmget()等上)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.