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
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