一个简单却不知道为什么出错的程序(附源码)?
#include<stdio.h>
main()
{
int p1,p2;
//printf("p1=%d,p2=%d\n",p1,p2); 带换行
//printf("p1=%d,p2=%d",p1,p2); 不带换行
while((p1=fork())==-1);
if(p1==0
putchar('b');
else{
while((p2=fork())==-1);
if(p2==0)
putchar('c');
else putchar('a');
}
}
在linux下编译,运行不带换行的printf,结果能正确的显示3次p1=...p2=....
而用带换行的那个printf,却只能显示1次p1=....p2=
这是怎么回事?