• 文件IO-缓冲区


    如何理解输入输出

    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

     

  • 相关阅读:
    【三十】springboot项目上高并发解决示例
    Windows11 环境安装Gradle
    JavaCV的摄像头实战之八:人脸检测
    Linux Shell脚本
    MySQL的安装
    智能abc是什么输入法:win10可用的智能abc输入法免费下载
    查找二叉树中第k层中度为1的节点数量(可运行)
    分析SSH登录日志
    Linux 服务器环境搭建
    爬虫教程 一 requests包的使用
  • 原文地址:https://blog.csdn.net/weixin_46120107/article/details/126192984