我们可以将文件I/O视为系统调用,内核要执行I/O操作,这里涉及到页缓存(高速缓存区)的概念,文件I/O执不执行与缓存区有关。
而标准I/O是对系统I/O调用的封装,标准I/O也有缓存区、行缓存的概念。正是由于这二级的缓存模式。导致标准I/O的效率很低。
当打开一个流时,标准I/O函数fopen返回一个指向FILE对象的指针。该对象通常是一个结构,它包含了标准I/O库为管理该流所需的所有信息,包括:用于实际I/O的文件描述符、指向用于该缓冲区的指针、缓冲区的长度、当前在缓冲区的字符数以及出错标志等。为引用一个流,需将FILE指针作为参数传递给每个标准I/O函数。
原文地址:http://blog.csdn.net/hustyangju/article/details/45640631