C静态变量和分叉过程



假设我有一个全局初始化为零的静态变量,并且我有一条分叉的进程。现在假设在这个父进程中,静态变量被设置为值10。我注意到在子进程中,静态变量仍然为零。这种行为是合理的,因为我们在子过程中没有改变这个变量的值。

如何使子级中的静态变量与父级中的该变量值相同?也就是说,静态变量的子副本也设置为值10。

谢谢,如果你需要更多信息,请告诉我。

简单的答案是,对于静态变量,你不能这样做,因为分配静态的内存区域不能共享。相反,您可以创建一个共享内存区域来执行此操作。一种方法是mmapMAP_ANONYMOUSMAP_SHARED。把它想象成malloc(),只是以页面大小为单位。另一种途径是使用shm_open()

相关内容

  • 没有找到相关文章

最新更新