gpt4 book ai didi

c - 为什么我在 fork 后得到的是 0 而不是 1?

转载 作者:行者123 更新时间:2023-11-30 20:52:01 26 4
gpt4 key购买 nike

我有一个可以将数字加一的程序。

int ile=0;

pid_t pid = fork();

if(pid != 0) {
ile++;
printf("%d", ile); //I get 1
}
else {
printf("%d", ile); //I get 0
}

为什么我得到 0?我必须得到 1。

最佳答案

fork() 创建一个具有自己的地址空间的新进程。这些不是共享公共(public)地址空间的线程。如果您想要后一种行为,请查看诸如 pthreads 之类的内容。

fork() 之后父进程中的更改(在您的情况下是 ile++)在子进程中将不可见。

关于c - 为什么我在 fork 后得到的是 0 而不是 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402511/

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