c语言全缓冲,C语言缓冲区 - osc_8b4n157m的个人空间 - OSCHINA - 中文开源技术交流社区...
定义
缓冲区是内存空间的一部分,用于缓冲输入或输出的数据。根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。
类型
缓冲区分为三种类型:全缓冲、行缓冲和不带缓冲。
1.全缓冲
在这种情况下,当填满标准I/O缓存后才会进行实际的I/O操作。典型代表是对磁盘文件的读写。
2.行缓冲
输入的字符先放入缓冲区,遇到换行符时才进行实际的I/O操作。典型代表是标准输入(stdin)和标准输出(stdout)。
3.不带缓冲
即不进行缓冲,典型代表是stderr,这样可以使得出错信息尽快显示。
大部分系统默认使用下列类型的缓存:标准出错是不带缓存的;涉及终端设备的流是行缓存的;其余为全缓存。
缓冲区的大小
如果用户没有设置缓冲区,系统会默认为标准输入输出设置缓冲区,大小通常为4096字节。这和计算机中的分页机制有关,每个页的大小为4096字节,因此通常情况下,缓冲区的大小会设置为4096字节。
缓冲区的刷新
以下情况会引发缓冲区的刷新:
1.缓冲区满时;
2.行缓冲区遇到换行符;
3.关闭文件;
4.使用特定函数刷新缓冲区。
举例
1 #include
2 #include
3 intmain() {4 printf("hello");5 int i = 0;6 for (; i < 10; i++) {7 putchar('a');8 Sleep(1000);9 }10 return 0;11 }
运行该程序,等待10s后,输出helloaaaaaaaaaa。
这是由于键盘输入是标准的行缓冲,只有遇到换行符或者程序结束后才会输出到屏幕上。
1 #include
2 #include
3 intmain() {4 printf("hello");5 fflush(stdout);6 int i = 0;7 for (; i < 10; i++) {8 putchar('a');9 Sleep(1000);10 }11 return 0;12 }
运行该程序,首先输出hello,等待10s后,继续输出aaaaaaaaaa。
这是由于fflush刷新了缓冲区,所以会首先输出hello。
参考
c语言全缓冲,C语言缓冲区 - osc_8b4n157m的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐
- c语言第三次作业(循环),C语言——第三次作业 - osc_kt69pvbx的个人空间 - OSCHINA - 中文开源技术交流社区...
#作业要求一# 题目6-1 输出月份英文名 题目6-2 查找星期 题目6-3 计算最长的字符串长度 题目6-4 指定位置输出字符串 作业:C高级第三次作业(2)没有思路,知识点也没有明白,未完成. # ...
- %20ld c语言,C语言第二次实验报告 - osc_ldea7g3t的个人空间 - OSCHINA - 中文开源技术交流社区...
一.实验题目,设计思路,实现方法 第十一次作业(二维数组): 11-5 打印杨辉三角(20 分) 本题要求按照规定格式打印前N行杨辉三角. 输入格式: 输入在一行中给出N(1≤N≤10). 输出格式: ...
- 关联规则可视化python语言_关联规则可视化 - 猪猪daxia的个人空间 - OSCHINA - 中文开源技术交流社区...
关联规则挖掘是一种流行的数据挖掘方法,在R语言中为扩展包arules.然而,挖掘关联规则往往导致非常多的规则,使分析师需要通过查询所有的规则才能发现有趣的规则.通过手动筛选大量的规则集是费时费力.在本 ...
- 方阵循环右移c语言,C语言第二次实验报告 - osc_zfz30hgc的个人空间 - OSCHINA - 中文开源技术交流社区...
#一.实验题目,设计思路与实现方法 题目一 11-6 方阵循环右移(20 分) 本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0.1.⋯.n−1列变换为第n−m.n−m+1. ...
- python语言折半查找_C语言折半查找 - 胡若晨的个人空间 - OSCHINA - 中文开源技术交流社区...
/************************************************************************* > File Name: bin_searc ...
- 微信步数C语言程序,获取微信步数 - osc_1v2pb1nt的个人空间 - OSCHINA - 中文开源技术交流社区...
const util = require('../../utils/util.js') Page({ /** * 页面的初始数据 */ data: { runData:[], }, /** * 生命周 ...
- C语言包含特殊寄存器文件ch,c语言第二次实验报告 - osc_zfz30hgc的个人空间 - OSCHINA - 中文开源技术交流社区...
一.实验题目,设计思路,实现方法 题目一:11-4 判断上三角矩阵 编写一个程序,判断一个矩阵是不是上三角矩阵. 问题:循环条件设置不当,导致错误的重复判断,最终导致结果错误. 题目二:12-8 删除 ...
- 百度音乐api+c语言,百度音乐接口api - osc_d87glhzv的个人空间 - OSCHINA - 中文开源技术交流社区...
百度音乐全接口 http://tingapi.ting.baidu.com/v1/restserver/ting 请求方式:GET 参数处理:format=json&calback=& ...
- r语言npsurv_R语言常用包分类总结 - osc_mf6gua6n的个人空间 - OSCHINA - 中文开源技术交流社区...
常用包: --数据处理:lubridata ,plyr ,reshape2,stringr,formatR,mcmc: --机器学习:nnet,rpart,tree,party,lars,boost, ...
- c语言实现简单环形链表,c语言实现简单链表 - 阿豪boy的个人空间 - OSCHINA - 中文开源技术交流社区...
#include #include #define ElemType int typedef struct{ ElemType e; struct Node *next; } Node,*pNode; ...
最新文章
- SSM框架 mybatis-plus + spring + springmvc + redis 水果生鲜产品交易平台
- python for android-Python-for-Android安装笔记
- 《HBase企业应用开发实战》—— 2.5 停止HBase集群
- c语言 元组顺序随机化,为什么关系中的元组没有先后顺序且不允许有重复元组?...
- iOS开发必读-GitHub 上Top100 的 Objective-C 项目
- SpringBoot的Bean之@ConditionalOnBean与@ConditionalOnClass
- php phar,PHP中phar(PHP Archive)包的创建并使用
- 计算机网络交换机组网及虚拟局域网实验报告,计算机网络实验报告材料(虚拟局域网).doc...
- 原来我也可以写Android小游戏
- Android手机里的垃圾文件和文件夹清理
- 常用动画特效 - CSS实现
- windows域名解析服务器地址,Win10打开提示无法解析服务器DNS如何解决
- (白帽生存法则)常见的网站攻击方式
- 中小学计算机教学大纲,中小学信息技术教材教法教学大纲.doc
- netty(三) NioEventLoop再学习
- 张勇卸任淘宝董事长,戴珊接任;苹果称不送充电器已节省55万吨矿石;Windows彻底告别SMB1传输协议|极客头条
- python2.7安装pytorch_Pytorch如何安装,Linux安装Pytorch,OSX安装Pytorch教程
- 微信开发者工具 wxmi修改模版颜色_Logo设计模版与设计管理
- 武大博士后应聘社区社工引热议,内卷还是人各有志?
- 建筑业企业施工劳务资质备案申请条件及劳务分包的种类