#include<stdio.h>
#include<Unistd.h>
Void main()
{ Printf("hi");
fork();
Printf("hello");
}
Output: hi hello hi hello
“但是当我在printf语句中使用\ n时,我将输出作为”
Output: hi
hello
hello
[但是\ n用于在新行中显示语句,但是为什么我会得到这种区别] 谢谢...
答案 0 :(得分:1)
printf
缓冲其输出,而当您fork
时,现在输出在两个程序的缓冲区中,因此它们最终都将输出它。要修复它,您应该通过执行fflush(stdout)
强制在分叉前立即刷新缓冲区。您看不到\n
的问题,因为使用\n
还会刷新缓冲区。