不带缓冲I/O:
open、read、write、lseek、close等
标准I/O(带缓冲):
fopen/fclose、fgets/fputs、fgetc/fputc、fwrite/fread
标准I/O对每个I/O流自动进行缓存管理(标准I/O函数通常调用malloc来分配缓存)。它提供了三种类型的缓存:
1) 全缓存。当填满标准I/O缓存后才执行I/O操作。磁盘上的文件通常是全缓存的。
2) 行缓存。当输入输出遇到新行符或缓存满时,才由标准I/O库执行实际I/O操作。stdin、stdout通常是行缓存的。
3) 无缓存。相当于read、write了。stderr通常是无缓存的,因为它必须尽快输出。
本文详细解析了标准I/O与缓冲I/O的区别,包括它们的工作原理、缓存管理方式以及应用场景,旨在帮助开发者更好地理解和使用这两种I/O方式。
1359

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



