我在一个共享库(libshared.so)中有一个全局变量,.The库被多个进程访问,这些进程正在访问库中的全局变量。我面临的问题是,一个进程对全局变量(存在于共享库中)的更新不会反映到其他独立进程访问的变量中。
我在网上搜索了这个问题,但没有找到任何合适的方法来纠正this.Also,我才知道只有文本/代码段是共享的,每个进程都会获得数据段的本地副本。
请提出实现此要求的解决方案。我想更新共享库中的全局变量。
环境:-Linux、ARM
谢谢阿米特·库马尔
发布于 2017-05-12 17:01:55
如果多个进程使用相同的共享库,则它们会映射相同的代码段,但每个进程都会获得自己的可写数据段副本。因此,“全局”在这里仅指一个进程及其地址空间的上下文中的全局。
想想看:任何其他实现都会调用desaster,例如标准C库中的errno是“全局的”,你肯定不想在这里读取随机的其他进程产生的错误。
如果这是您自己的库,并且您确实需要在进程之间共享数据,那么可以查看共享内存(例如,在linux shmget()等人上)。
https://stackoverflow.com/questions/43933387
复制相似问题