语言/用户级缓冲区
这个缓冲区是语言设置的,缓冲区满足条件就用系统调用接口write将缓冲区的内容刷新到linux内核中。
也就是说这些要写入的库函数,里面必定封装了对应的系统调用
缓冲区刷新的分类
无缓冲:直接刷新 fflush可以直接刷新
行缓冲:有\n刷新 显示器就是行刷新
全缓冲:缓冲区满了刷新 文件写入是全缓冲
进程退出时也会刷新缓冲区
缓冲区的意义
1.能够使效率提高
调用系统调用接口是需要时间成本的,如果使用缓冲区,存储的字符串到一定长度再调用系统调用,能够有效减少调用系统调用的次数。
2.配合格式化
每个被打开的文件都有对应的语言级别的缓冲区。
缓冲区保存在各自的文件流FILE对象里