我写了下面的C代码:
#include<stdio.h>
int main(){
printf("A");
if(fork() == 0){
printf("B");
}
else{
printf("C");
}
}
我得到的结果是:
ACAB
我希望这段代码只打印一次。
有人能解释一下这个结果吗?
最佳答案
您的错误不是在fork
-ing之前刷新缓冲区,因此两个进程都将写入它。
在fork()
之前添加:
fflush(0); // Flush all output-streams
关于c - 在fork()之前写入的内容在输出中出现两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26162492/