Content #
根据是否利用标准库缓存,可以把文件 I/O 分为缓冲 I/O 与非缓冲 I/O。
-
缓冲 I/O 指利用标准库缓存来加速文件的访问,而标准库内部再通过系统调度访问文件。
-
非缓冲 I/O 指直接通过系统调用来访问文件,不再经过标准库缓存。
这里所说的“缓冲”,是指标准库内部实现的缓存。比方说,你可能见到过,很多程序遇到换行时才真正输出,而换行前的内容,其实就是被标准库暂时缓存了起来。
无论缓冲 I/O 还是非缓冲 I/O,它们最终还是要经过系统调用来访问文件。而系统调用后,还会通过页缓存,来减少磁盘的 I/O 操作。