当前位置:网站首页>文件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
边栏推荐
- [Maui official version] Create a cross-platform Maui program, as well as the implementation and demonstration of dependency injection and MVVM two-way binding
- 解码2022中国网安强星丨正向建、反向查,华为构建数字化时代的网络安全防线
- RK3399平台开发系列讲解(内核驱动外设篇)6.35、IAM20680陀螺仪介绍
- shell编程之正则表达式与文本处理器
- LeetCode-402 - Remove K digits
- ThreadLocal comprehensive analysis (1)
- shell (text printing tool awk)
- An article to teach you a quick start and basic explanation of Pytest, be sure to read
- shell脚本
- ArcGIS自动随机生成采样点的方法
猜你喜欢
艺术与科技的狂欢,阿那亚2022砂之盒沉浸艺术季
2022年8月的10篇论文推荐
使用 Cloudreve 搭建私有云盘
[SQL brush questions] Day3----Special exercises for common functions that SQL must know
ThreadLocal comprehensive analysis (1)
服务——DNS正向反向域名解析服务
Live Classroom System 09--Tencent Cloud VOD Management Module (1)
unusual understanding
RK3399平台开发系列讲解(内核驱动外设篇)6.35、IAM20680陀螺仪介绍
威纶通触摸屏如何在报警的同时,显示出异常数据的当前值?
随机推荐
一篇文章教你Pytest快速入门和基础讲解,一定要看
基于Pix4Dmapper的空间三维模型重建应用——空间分析选址
水果沙拉酱
ArcGIS自动随机生成采样点的方法
基于交流潮流的电力系统多元件N-k故障模型研究(Matlab代码实现)【电力系统故障】
Live Classroom System 08 Supplement - Tencent Cloud Object Storage and Course Classification Management
[Maui official version] Create a cross-platform Maui program, as well as the implementation and demonstration of dependency injection and MVVM two-way binding
VLAN huawei 三种模式
直播课堂系统08-腾讯云对象存储和课程分类管理
shell (text printing tool awk)
Web Reverse Lilac Garden
Conditional Statements of Shell Programming (2)
【SQL刷题】Day3----SQL必会的常用函数专项练习
【PCBA方案】电子握力测试仪方案she‘ji
阿里云贾朝辉:云XR平台支持彼真科技呈现国风科幻虚拟演唱会
国内Gravatar头像的完美替代方案Cravatar
LeetCode-36-Binary search tree and doubly linked list
2022.8.9 Mock Competition
About DataFrame: Processing Time
Redis Performance Impact - Asynchronous Mechanisms and Response Latency