子进程是否可以更改其父进程共享的静态int?与这个简单例子类似的东西:
static int changeMe = 1;
...
int main() {
if (fork()=0){
changeMe = 0;
}
wait(0);
printf(1, "changeMe value is: %d., changeMe);
}
我知道孩子会创建父内存的克隆。但我实际上希望孩子会改变其父母的价值 - 是否可能?
答案 0 :(得分:2)
不是通过fork,因为您正在创建一个具有单独堆栈和地址空间的新进程。如果要共享变量,请查看使用线程。
答案 1 :(得分:1)
forked()后处理这种通信的最常用方法是使用管道,特别是如果你想要"与孩子的私人沟通渠道"。
http://www.gnu.org/software/libc/manual/html_node/Pipes-and-FIFOs.html