子进程是否可以更改其父进程共享的静态变量?

时间:2015-03-28 16:41:04

标签: c fork parent-child child-process

子进程是否可以更改其父进程共享的静态int?与这个简单例子类似的东西:

static int changeMe = 1;
...
int main() {
   if (fork()=0){
      changeMe = 0;
   }
   wait(0);
   printf(1, "changeMe value is: %d., changeMe);
}

我知道孩子会创建父内存的克隆。但我实际上希望孩子会改变其父母的价值 - 是否可能?

2 个答案:

答案 0 :(得分:2)

不是通过fork,因为您正在创建一个具有单独堆栈和地址空间的新进程。如果要共享变量,请查看使用线程。

答案 1 :(得分:1)

forked()后处理这种通信的最常用方法是使用管道,特别是如果你想要"与孩子的私人沟通渠道"。

http://www.gnu.org/software/libc/manual/html_node/Pipes-and-FIFOs.html