c - C 中的变量作用域

标签 c variables

我有一个 main() 函数,在声明 main() 之前,我声明了全局变量。

然后在 main() 中启动 2 个进程:1 个子进程和 1 个父进程通过 fork()。为什么父子进程不能共享我声明的全局变量?处理这个问题的好方法是什么?谢谢。

最佳答案

当您fork() 时,您正在生成一个新进程。 fork 时的所有内容都被复制,但在那之后......没有任何共享。

此时你有两个选择:

  • 保持两个进程之间的管道畅通并传达变化
  • 将您的代码重写为多线程,您可以在其中访问相同的数据(使用锁)

关于c - C 中的变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5295286/

相关文章:

c - 套接字发送和接收缓冲区

javascript - 触发名称位于字符串中的函数

C 编程 : declaring string and assignment

variables - 我们可以在 gitlab-ci.yml 中使用动态作业名称吗?

Java - 检查变量是否等于任何数组元素

python - tensorflow::Tensor 到 python Tensor 或 numpy.nd_array

c++ - 如何处理代码中的优化

c - 不同 C block 中同名的 auto 变量 : memory allocation

c++ - 函数仅声明,但仍然有效

variables - 计算循环中的变量数量