当前位置:网站首页>文件IO-缓冲区
文件IO-缓冲区
2022-08-10 21:49:00 【干饭小白】
如何理解输入输出
1.站在文件的角度
2.站在内存的角度
我们写程序,是站在内存的角度思考问题的。
如果我们是操作文件,向文件中输入,从文件中获取的表达更为准确。
标准C库IO与Linux系统IO的关系
1.C库函数底层其实是调用了Linux系统函数的
2.C库IO是有缓冲区的,Linux系统函数是没有缓冲区的
有缓冲区的好处:
提高效率
比如现在有100个鸡蛋需要从A点运送到B点,在没有缓冲区的情况下只能一个一个的运送,而如果存在缓冲区,那么就相当于有一个框子,假设这个框子能装20个鸡蛋,当框子装满或者flush刷新或者A区的鸡蛋没有剩余了,则通过框子向B点运送鸡蛋。
刷新内存缓冲区的三个时机
1.主动刷新 fflush
2.缓冲区已满
3.正常关闭文件 close return exit
文件指针FILE
我们知道C语言操作文件都是通过FILE来进行的,FILE是一个结构体。其中有三个最为重要的成员
1.通过文件描述符可以索引到相应的磁盘文件
2.通过文件读写指针可以确定在该文件中的读写位置
3.I/O缓冲区(与前面说的功能一样,减少磁盘读写次数来提高效率)
磁盘读写为什么慢
在学习的过程中我们经常会碰到减少磁盘读写操作来提高效率,那是因为磁盘的操作相对比较慢。这是硬件上的缺陷,大部分的磁盘都是机械磁盘,读取寻道时间和写入寻道时间都是毫秒级别的,而内存属于电子设备,读写是纳秒级别的。1ms = 10^7ns
边栏推荐
猜你喜欢
Alibaba and Ant Group launched OceanBase 4.0, a distributed database, with single-machine deployment performance exceeding MySQL
Shell编程规范与变量
mmpose关键点(一):评价指标(PCK,OKS,mAP)
阿里云新增三大高性能计算解决方案,助力生命科学行业快速发展
【SQL刷题】Day3----SQL必会的常用函数专项练习
12 Recurrent Neural Network RNN2 of Deep Learning
力扣221题,最大正方形
华为路由器旁挂引流实验(使用流策略)
翻译科技论文,俄译中怎样效果好
The Thread State,
随机推荐
测试4年感觉和1、2年时没什么不同?这和应届生有什么区别?
QT笔记——QT工具uic,rcc,moc,qmake的使用和介绍
黑猫带你学Makefile第12篇:常见Makefile问题汇总
【PCBA solution】Electronic grip strength tester solution she'ji
什么是Jmeter?Jmeter使用的原理步骤是什么?
C#【必备技能篇】Hex文件转bin文件的代码实现
[Maui official version] Create a cross-platform Maui program, as well as the implementation and demonstration of dependency injection and MVVM two-way binding
A shell script the for loop statements, while statement
Live Classroom System 08-Tencent Cloud Object Storage and Course Classification Management
HighTec快捷键(Keys)设置位置
Service - DHCP principle and configuration
JVM经典五十问,这下面试稳了
异常的了解
Why general company will say "go back messages such as" after the end of the interview, rather than just tell the interviewer the result?
shell(文本打印工具awk)
ThreadLocal全面解析(一)
管理员必须知道的RADIUS认证服务器的部署成本
shell脚本
Huawei router clock near the drainage experiment (using stream strategy)
爬虫request.get()出现错误