文件的读写需要使用文件类型指针,而文件类型是C语言提供的结构体类型。

FILE在"stdio.h"中有如下定义:

struct _iobuf {

char *_ptr; //文件输入的下一个位置

int _cnt; //当前缓冲区的相对位置

char *_base; //指基础位置(即是文件的起始位置)

int _flag; //文件标志

int _file; //文件的有效性验证

int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取

int _bufsiz; //文件的大小

char *_tmpfname; //临时文件名

};

typedef struct _iobuf FILE;

可以使用FILE定义其指针变量。要读写文件,可以为每个要使用的文件定义一个FILE*类型的指针变量,如:

FILE *fp;

文件指针指出了文件读写操作的当前数据位置,而FILE结构体指针指出了打开文件所对应的结构体在内存中的位置。