FILE是一个结构体,C语言的stdio.h头文件中,定义了用于文件操作的结构体FILE。这样,我们通过fopen返回一个文件指针(指向FILE结构体的指针)来进行文件操作。
FILE结构体的定义如下:
#ifndef _FILE_DEFINED
struct _iobuf {
char *_ptr; //文件输入的下一个位置
int _cnt; //当前缓冲区的相对位置
char *_base; //指向文件的起始位置
int _flag; //文件标志
int _file; //文件描述符
int _charbuf; //检查缓冲区状况
int _bufsiz; //缓冲区大小
char *_tmpfname;//临时文件名
};
typedef struct _iobuf FILE;
打开一个文件将返回指向FILE结构(在stdio.h中定义)的指针,它包含用于处理文件的信息,也就是说,这个结构包含文件描述符。C语言库中的操作文件函数都是调用的系统接口中的(read,write,open)实现的。C库中的文件操作就是对系统接口对文件操作的一层封装。