码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 文件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

     

  • 相关阅读:
    央企基本信息数据集(2008-2022年)
    【鸿蒙应用开发系列】- 打开页面与页面间数据交互
    设计海报都有哪些好用的软件推荐
    释放搜索潜力:基于ES(ElasticSearch)打造高效的语义搜索系统,让信息尽在掌握[2.项目讲解篇],支持Linux/Windows部署安装
    用于NLP领域的排序模型最佳实践
    6、ByteBuffer内部结构
    京东推荐系统的大促性能优化实战
    任意文件读取和漏洞复现
    天锐绿盾——应用服务系统接入-集成OA审批
    小程序DevTools-main抓包
  • 原文地址:https://blog.csdn.net/weixin_46120107/article/details/126192984
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号