永发信息网

对c语言中的i/o流,完全缓冲和不缓冲具体差别在哪里,能举个例子说明一下吗?

答案:1  悬赏:40  手机版
解决时间 2021-03-11 22:29
对c语言中的i/o流,完全缓冲和不缓冲具体差别在哪里,能举个例子说明一下吗?
最佳答案
实际上就是I/O效率的问题,

不缓冲的话,数据直接送给 I/O 设备,由于I/O设备的速度相对CPU 内存来说慢很多,
所以经常使用I/O就会影响效率

所以在运算结果和I/O 间建立一个缓冲(一般为内存空间) 把运算结果 先放到这个缓冲里
当缓冲满的时候才启动I/O 传送数据,当然缺陷是 如果缓冲未满,这时程序终止运行
那么这些在缓冲里的数据就会丢失

你可以做个写文件的例题,
open
write 一些数据(不要超过缓冲长度)
最后不要调用 close 或者 flush
这个时候你会发现实际文件里没有写入任何数据

如果你write的数据超过缓冲,你会发现就会有一部分数据被写入文件了

所以缓冲是一种用空间换时间 提高运行效率的解决方案
比如
硬盘 - 内存- CPU
内存 - cache- CPU
GPU - 显存
这些都属于使用缓冲的概念
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
产业结构优化是根据本国的(  )等特点,通
21广场商贸中心我想知道这个在什么地方
世界上有多少个人叫荣华建
邮政银行自助取款机转账到农业银行可以转么?
2人共同出资,与他人签订合伙经营协议,我们2人
汉尼拜尔怎么样
句容各镇防疫站有冻干的狂犬疫苗吗?我还差最
鱼鼻哥我想知道这个在什么地方
两根小棒分别长3厘米和7厘米,如果要围成一个
【天然气储量】...新天然气田的发现证明了南
机械设计用ug还是solidworks好
勾引怎么打繁体字
小米运动app晚上睡觉时也记录步数
电量q=2.0×10∧-3c,质量m=1.0×10∧-4kg的带
河南兴博工程管理咨询有限公司我想知道这个在
推荐资讯
不是肠系膜上动脉的直接分支的是
等腰直角三角形ABC,角B=90度,AB=a,O为AC中
为什么要想生个小孩这么难呀,痛苦
脊髓从胸段折断的病人,出现大小便失禁的原因
怎么报名开门大吉交钱吗
选择那个咋做
八个字的唯美,有诗意的情侣网名,不要繁体和
良叔大排档我想知道这个在什么地方
小米47寸电视价格
什么是数据流图
补写出下列名篇名句中的空缺部分。(6分)(1
河南省腾飞机器制造公司在哪里啊,我有事要去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?