博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linux编程-缓冲区

Posted on 2023-03-12 22:20  乔55  阅读(74)  评论(0编辑  收藏  举报

缓冲区的基本概念

// 缓冲区概念
- 缓冲区作用:用户输入的的字符被收集在buffer这个临时缓冲区

  • 用户输入的字符被收集并存储在一个称为buffer的临时缓冲区。当按下enter,程序才可使用用户输入的这些字符

缓冲区分类

  • 完全I/O:当缓冲区被填满时才刷新缓冲区(即内容被传输到目的地)
  • 完全行缓冲I/O:指出现换行符才刷新缓冲区
    • 键盘输入的通常时行缓冲区,所以按下enter才刷新缓冲区

输出缓冲区内容输出到屏蔽的时机

  • 缓冲区满了
  • 程序执行到了return 0
  • 调用了std::endl
  • 当系统不太繁忙时也会查看缓冲区,发现新内容时也会输出到屏幕

缓冲区特点

  • 将若干字符作为一块传输,比逐个字节传输节约时间
  • 若用户打昏字符,也可通过键盘修改,当按下enter后才最终确认传输

标准IO缓冲区

  • 标准IO有自己的一块用户区的缓冲区

系统IO

  • 系统IO没有用户级的缓冲区,操作系统会在内核区维护一块缓冲区
  • 但是由用户区进到内核区的花费是挺大的