gpt4 book ai didi

使用 fork() 反增加子项和父项

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:11 26 4
gpt4 key购买 nike

这个小程序有问题:

    int main() {

pid_t process;
int count= 0;

switch(process= fork()) {

case -1:
printf("Fork error!\n\n");
exit(1);
break;

case 0: //child
printf("Process CHILD: PID= %d, Value= %d \n", getpid(), process);
printf("Coounter NOT increased: %d\n", count);
printf("Increase counter...\n");
sleep(2);
count= count + 2;
printf("Counter increased: %d\n\n", count);
exit(0);
break;

default: //parent
wait(0);
printf("Process PARENT: PID= %d, Value= %d\n", getpid(), process);
printf("Counter value: %d\n\n", count);
break;
}
return 0;
}

我增加了 child 的计数器,但 parent 的计数器没有增加......为什么?

谢谢大家

最佳答案

那是因为在fork之后,父进程和子进程是不同的进程,它们各自有自己的一份变量count

关于使用 fork() 反增加子项和父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17424245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com