【发布时间】:2014-11-27 12:58:37
【问题描述】:
我写了以下C代码:
#include<stdio.h>
int main(){
printf("A");
if(fork() == 0){
printf("B");
}
else{
printf("C");
}
}
我得到的输出是:
ACAB
我希望这段代码只打印一次 A。
谁能解释一下这个输出?
【问题讨论】:
-
最好使用描述why 或如何 某事“未按预期运行”的主题行。我已经尝试适当地改进这一点。
-
这很棘手。有些雇主喜欢这样问。
fork将所有数据从父级复制到用户,包括 IO 缓冲区。这是它的副作用。