【发布时间】:2016-10-05 00:58:37
【问题描述】:
最近遇到一个有趣的情况:
我在动态链接库 (.so) 中定义了一个全局静态变量。这个库总是在 fork() 下调用。
我注意到全局变量总是使用初始化值调用,并且不会在调用之间更改它们。
对此我有几个问题:
为什么被“分叉”会改变这个变量的内存更新的基本方法?我认为全局变量具有特定的内存映射
有人熟悉绕过它的方法吗?我只考虑了一种将数据写入内核内存空间的方式(使用 mmap)
谢谢大家!
【问题讨论】:
-
见this 答案。
-
虽然共享库共享其代码,但它确实不在不同进程之间共享其数据。
标签: c linux global-variables fork