今天看到这个代码很简单,就是验证一下Linux系统的输出缓存大小。当

猜一下这个代码的输出:

#include <stdio.h>
#include <string.h>
#include <errno.h>
#define N 1025
int
main(int argc, char **argv)
{
char ch;
int count = 0;
char buf[N]; memset(buf, 'a', N); buf[N-2] = 'b';
buf[N-1] = 'c'; fputs(buf,stdout);
//printf("%s",buf); //备用测试
//fflush(fp); //刷新缓存到输出 return 0;
}

既然代码这样写了,我们猜想肯定不会完全输出了,运行结果是:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaab

这个结果的原因是,当缓冲区达到最大时就会自动输出,在此程序中c没有输出,是因为缓存只有1024字节,c在前1024外,所以再不刷新缓存的情况下,c是不会输出的。

printf的输出结果和fputs一样,printf输出里如果加一个换行‘\n’也是可以输出的(这一点在调试时有时会遇到,printf打印的输出没有输出出来,有可能就是忘了加换行了)。fflush(fp); 函数会把缓存的数据刷新到输出。

最新文章

  1. MP3文件ID3信息编辑器代码开源 - 开源研究系列文章
  2. asp.net使用Get请求webservice
  3. 使用VS2010编译Qt 5.6.1过程记录
  4. canvas图片处理
  5. easyui datalist按组多选
  6. hihocoder #1388 : Periodic Signal NTT&amp;FFT
  7. JS从剪切板里粘贴图片
  8. CSS 块状元素和内联元素的详解
  9. CSS笔记(三)背景
  10. 关于iOS7 设计师需要了解的十件事
  11. Mongoose 是什么?
  12. [无人值守安装操作系统]__RHEL6__FTP+TFTP+DHCP+Kickstart+PXE
  13. 看部电影,透透彻彻理解IoC(你没有理由再迷惑!)
  14. C语言宏定义函数中的“_##”的意思
  15. UVA 489-- Hangman Judge(暴力串处理)
  16. 7 JavaScript Basics Many Developers Aren&#39;t Using (Properly)【转】
  17. python使用mongodb
  18. 视音频编解码学习工程:FLV封装格式分析器
  19. C/C++ -- 插入排序算法
  20. 从字节码看java类型转换【 深入理解 (T[]) new Object[size] 】

热门文章

  1. python数据处理(九)之自动化与规模化
  2. javascript基础(五): jQuery
  3. Angular 懒加载找不到模块问题解决方法
  4. 【IDEA】创建maven项目,webapp没有被标识,无法识别
  5. nginx极简教程
  6. spring security简单登录的认证
  7. 通过server酱实现定时推送天气情况,再不用担心你的糊涂蛋女友忘带伞了~~
  8. 从零开始学Electron笔记(六)
  9. db2数据库创建删除主键约束和创建删除唯一键约束
  10. 做软件测试要月入20k?听听腾讯大牛怎么说