- 缓冲区(本文特指标准IO的缓冲区):
- 缓冲区的类型:
- 一、行缓冲:
- 和
终端相关
的缓冲区; - 例如:标准输入(
stdin
)、标准输出(stdout
); - 内存空间的大小:
1KB
(1024B
);- 二、全缓冲:
- 和
文件相关
的缓冲区; - 内存空间的大小:
4KB
(4096B
);- 三、无缓冲:
- 没有缓冲区;
- 例如:标准出错(
stderr
); - 内存空间的大小:
0KB
;- 行缓冲刷新方式:
- 1、遇到
换行符
时,会刷新缓冲区; - 2、
程序结束
时,会刷新缓冲区; - 3、关闭
文件指针
时,会刷新缓冲区; - 4、
输入输出切换
时,会刷新缓冲区; - 5、行缓冲区达到
1KB
时,会刷新缓冲区; - 6、调用
fflush函数
时,会刷新缓冲区(即手动刷新
缓冲区); - 全缓冲刷新方式:
- 1、
程序结束
时,会刷新缓冲区; - 2、关闭
文件指针
时,会刷新缓冲区; - 3、
输入输出切换
时,会刷新缓冲区; - 4、全缓冲区达到
4KB
时,会刷新缓冲区; - 5、调用
fflush函数
时,会刷新缓冲区(即手动刷新
缓冲区); - 注意:
- 遇到
换行符
时,全缓冲不会刷新缓冲区
;
行缓冲与全缓冲简介
![](https://img-home.csdnimg.cn/images/20240711042549.png)