我有一个程序可以将数字增加一个。
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。
答案 0 :(得分:3)
fork ()
使用自己的地址空间创建一个新进程。这些不是共享公共地址空间的线程。如果您希望后一种行为看起来像pthreads
。
在ile++
之后,父进程(您的案例中为fork()
)的更改将无法在子级中显示。