关于stdout是行缓冲的问题

vcgaoshou 2020-10-13 06:11:37
文章说,stdout是行缓冲的,输出会放在一个buffer里面,只有到换行的时候,即直到遇到新行,才会一起输出才会输出到屏幕,并举例以下程序
#include<stdio.h>
int main(){
fprintf(stdout,"Hello ");
fprintf(stderr,"World!");
return 0;
}
输出是结果是。
World!Hello
但是我运行此程序的结果是 HelloWorld!,得不到上述结果,原因何在?
...全文
188 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcgaoshou 2020-10-14
  • 打赏
  • 举报
回复
能把你的程序出来看看吗?谢谢!
自信男孩 2020-10-13
  • 打赏
  • 举报
回复
因为程序退出了,那么行也结束了。stderr是无缓冲的,会直接输出;
楼主的程序,在我的代码里运行的是
World!Hello

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧