假设我有一个全局初始化为零的静态变量,并且我有一个分叉的进程。现在假设在这个父进程中,静态变量被设置为值10.我在子进程中注意到静态变量仍然为零。这种行为是合理的,因为我们没有在子进程中更改此变量的值。
如何让子节点中的静态变量与父节点中此变量的值相同?也就是说,子项的静态变量副本也设置为值10。
如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
简短的回答是,对于静态变量,您不能,因为无法共享分配静态的内存区域。相反,您可以创建共享内存区域来执行此操作。执行此操作的一种方法是mmap
MAP_ANONYMOUS
和MAP_SHARED
。可以把它想象malloc()
,除了页面大小的单位。另一种方法是使用shm_open()
。