我有一个main()函数,在声明main()之前,我声明了全局变量。
然后在main()2进程内启动:1个子进程和1个父进程通过fork()。为什么父进程和子进程不能共享我声明的全局变量?处理这个问题的好方法是什么?谢谢。
答案 0 :(得分:4)
当您fork()
生成新流程时。复制fork 时的所有,但之后......没有任何共享。
那时你有两个选择:
答案 1 :(得分:0)
使用fork()可以创建一个具有单独内存空间的新进程。要在进程之间进行通信,您可以使用信号(使用kill())
如果要共享变量,请考虑使用线程(例如pthread.h)。然后,您可以使用事件或互斥锁进行线程同步。