printf 是建立在 stdout 缓冲上的函数。
printf 的 buffer 行为,取决于 stdout 对应的设备的类型
1.在控制台输出的情况下
它使用的是line buffer,也就是遇到换行就会自动进行输出的操作;
否则是当程序结束时,全部输出出来。
2.如果目标设备是 pipe
PS : 例如 redirect 到文件的情况下
那么实际上 printf 会做 full buffering,也就是 buffer 满了才会 flush。
否则是当程序结束时,全部 write 出来。
3.Code
#include <stdio.h>
#include