child 进程可以更改他的 parent 共享的静态变量吗?

Can a child process change a static variable shared by his parent?

child 进程可以更改他的 parent 进程共享的 static int 吗?类似于这个简单示例的内容:

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

我知道 child 创建了 parent 内存的克隆。但我实际上希望 child 会更改其 parent 处的值 - 这可能吗?

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

forked() 后处理此类通信的最常用方法是使用管道,特别是如果您想要 "a private communication channel with the child"。

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