printf("123"); while(一); 在Linux下无输出,在Windos下有输出

printf("123"); while(1); 在Linux下无输出,在Windos下有输出?
同样的代码:
#include <stdio.h>

int main(){
printf("123");
while(1);
return 0;
}


在Windos下运行是先输出123再循环, 在Linux下则没有输出,直接进入循环中,这是为什么呢?是缓存机制不同吗?
我想在Linux下运行也能先输出123, 肿么办 小白求助
------解决思路----------------------
加一个换行 "123\n" 试试
------解决思路----------------------
用fflush(stdout)
------解决思路----------------------
1l, 2l的方法都可行。
printf输出到屏幕的几种情况:
1.输出缓冲区满了
2. 程序结束
3. 遇到"\n" (1L的办法)
4. 人为刷新输出缓冲区.(2楼的办法,fflush(stdout));