缓冲IO与非缓冲IO

缓冲IO与非缓冲IO

Content #

根据是否利用标准库缓存,可以把文件 I/O 分为缓冲 I/O 与非缓冲 I/O。

  1. 缓冲 I/O 指利用标准库缓存来加速文件的访问,而标准库内部再通过系统调度访问文件。

  2. 非缓冲 I/O 指直接通过系统调用来访问文件,不再经过标准库缓存。

这里所说的“缓冲”,是指标准库内部实现的缓存。比方说,你可能见到过,很多程序遇到换行时才真正输出,而换行前的内容,其实就是被标准库暂时缓存了起来。

无论缓冲 I/O 还是非缓冲 I/O,它们最终还是要经过系统调用来访问文件。而系统调用后,还会通过页缓存,来减少磁盘的 I/O 操作。

Viewpoints #

From #

23 | 基础篇:Linux 文件系统是怎么工作的?