当前位置:网站首页>文件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
边栏推荐
猜你喜欢
HighTec快捷键(Keys)设置位置
QT笔记——vs + qt 创建一个带界面的 dll 和 调用带界面的dll
unusual understanding
shell脚本
服务——DNS正向反向域名解析服务
Common interview questions for APP UI automation testing, maybe useful~
xshell (sed 命令)
【PCBA solution】Electronic grip strength tester solution she'ji
camera preview process --- from HAL to OEM
玩转doxygen 之RT-THREAD
随机推荐
shell编程之正则表达式与文本处理器
Likou 221 questions, the largest square
GAN CFOP
How to secure users in LDAP directory service?
Using SylixOS virtual serial port, serial port free implementation system
Object.assign用法 以及 与$.extend的区别
camera预览流程 --- 从HAL到OEM
labelme-5.0.1版本编辑多边形闪退
美味的佳肴
高通平台开发系列讲解(应用篇)QCMAP应用框架介绍
使用SylixOS虚拟串口,实现系统串口自由
QT笔记——用VS + qt 生成dll 和 调用生成的dll
罗克韦尔AB PLC RSLogix5000中计数器指令使用方法介绍
华为路由器旁挂引流实验(使用流策略)
使用 Cloudreve 搭建私有云盘
Regular expression of shell programming and text processor
直播课堂系统08-腾讯云对象存储和课程分类管理
Self-organization is a two-way journey between managers and members
【SQL刷题】Day3----SQL必会的常用函数专项练习
关于 DataFrame: 处理时间