• 缓冲区


    1.什么是缓冲区

    缓冲区是内存的一部分空间,用缓冲输入输出的数据。缓冲区又分为输入缓冲区和输出缓冲区。缓冲区又被称为缓存。

    2.缓冲区存在的意义
    主要的意义就是为了提高cpu的效率。
    输入端。假如没有缓冲区,我们要从磁盘中读取数据,有几个字符,CPU就要读写几次,CPU是高速率的,而读取是低速率的,这样做会降低CPU的效率。相反如果将数据都存在缓冲区里面,等要读取的时候就可以一次性读取多数的数据。大大地提高了CPU的效率。
    输出端。假如要将数据打印出来,打印机是低速的,CPU是高速的。将数据放入缓冲区,避免数据被分为多次打印,就此解放了CPU,使它能去处理其他任务。

    3、缓冲区的分类
    (1)行缓冲
    遇到 就刷新缓冲区,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是键盘输入数据和输出信息到屏幕(标准输入输出例如printf())。
    (2)全缓冲
    当缓冲区写满以后就会刷新缓冲区。当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写(例如fwrite())。
    (3)无缓冲
    即没有缓冲区,代表是系统调用(例如write());

    5、缓冲区的提供者
    首先介绍一下几个概念
    (1)系统调用:操作系统直接暴露给用户的接口。
    (2)库函数:把系统调用进行二次封装之后给用户使用的结果叫做库函数(封装系统调用,实现相同的复杂逻辑,节省工作量)
    (3)因此库函数和系统调用具有层级关系,库函数是系统调用的上层(以f开头的函数如fwrite都是库函数,去掉f如write是系统调用)
    (4)系统调用不具有缓冲区,库函数具有缓冲区,而库函数是系统调用的上层,因此,缓冲区是C语言库提供的。具体一点是由库中的文件操作符提贡的

  • 相关阅读:
    VC编译器
    位域
    位域2
    函数调用时刻的堆栈情况
    字节对齐2
    Python学习笔记(6)while循环、while嵌套
    Python学习笔记(7)字符串Str
    Python学习笔记(3)输出、输入、输出输入综合小练习
    Python学习笔记(1)Python介绍、解释器、第一个python程序、注释
    Python学习笔记(4)运算符、运算符小练习
  • 原文地址:https://www.cnblogs.com/yangxingsha/p/11459146.html
Copyright © 2020-2023  润新知