缓冲区的基本概念
// 缓冲区概念
- 缓冲区作用:用户输入的的字符被收集在buffer这个临时缓冲区
- 用户输入的字符被收集并存储在一个称为buffer的临时缓冲区。当按下enter,程序才可使用用户输入的这些字符
缓冲区分类
- 完全
I/O
:当缓冲区被填满时才刷新缓冲区(即内容被传输到目的地) - 完全
行缓冲I/O
:指出现换行符才刷新缓冲区- 键盘输入的通常时行缓冲区,所以按下enter才刷新缓冲区
输出缓冲区内容输出到屏蔽的时机
- 缓冲区满了
- 程序执行到了return 0
- 调用了std::endl
- 当系统不太繁忙时也会查看缓冲区,发现新内容时也会输出到屏幕
缓冲区特点
- 将若干字符作为一块传输,比逐个字节传输节约时间
- 若用户打昏字符,也可通过键盘修改,当按下enter后才最终确认传输
标准IO缓冲区
- 标准IO有自己的一块用户区的缓冲区
系统IO
- 系统IO没有用户级的缓冲区,操作系统会在内核区维护一块缓冲区
- 但是由用户区进到内核区的花费是挺大的