前言
大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!
目录
一.C语言缓冲区的机制与策略(无缓冲,行缓冲,全缓冲)
1.缓冲区机制:
- 无缓冲(立即刷新)
- 行缓冲 (行刷新)
- 全缓冲 (缓冲区满了,再刷新)
例子:
- 一般对于显示器文件,进行行缓冲(行刷新)
- 对于磁盘上的文件,进行全缓冲 (缓冲区满了,再刷新)
2.缓冲区策略:
- 一般策略:强制刷新
- 特殊情况: 进程退出 的时候,一般要进行刷新缓冲区,即上述强制刷新
二.重新理解【用户/文件(内核)缓冲区 】【刷新】【数据的读写本质】
1.用户缓冲区方面:
- 刷新: 把数据从C语言缓冲区写入操作系统
- 我们日常中使用最多的,就是C/C++提供的语言级别的缓冲区
- 而像一些系统调用,例如
write()就没有使用C语言的缓冲区
2.文件缓冲区方面:
- 而文件缓冲区,属于操作系统层面,存在于FILE结构体中;
- 无论读写都要把数据加载到文件缓冲区中
3.内核缓冲区方面
- 文件系统的缓冲区属于内核缓冲区的一种
- 我们在应用层进行数据的读写本质, 是将内核缓冲区中的数据进行来回的拷贝
三.总结画图演示【系统调用与库函数区别】:
- 系统调用直接到文件缓冲区一步到位
- 库函数还要经过用户缓冲区

四.样例模型演示
1.现象演示——引出原理
- 我们打印一段代码
#


最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



