我有一个 main() 函数,在声明 main() 之前,我声明了全局变量。
然后在 main() 中启动 2 个进程:1 个子进程和 1 个父进程通过 fork()。为什么父子进程不能共享我声明的全局变量?处理这个问题的好方法是什么?谢谢。
最佳答案
当您fork()
时,您正在生成一个新进程。 fork 时的所有内容都被复制,但在那之后......没有任何共享。
此时你有两个选择:
- 保持两个进程之间的管道畅通并传达变化
- 将您的代码重写为多线程,您可以在其中访问相同的数据(使用锁)
关于c - C 中的变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5295286/