我有将数字增加一的程序。
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 ()
使用其自己的地址空间创建一个新进程。这些不是共享公共地址空间的线程。如果希望后一种行为,请查看类似pthreads
的内容。ile++
之后父进程(在您的情况下为fork()
)中的更改在子进程中将不可见。
关于c - 为什么在 fork 后我得到0而不是1?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20402511/