C语言 文件指针
C语言中读写每一个文件时,必须了解如下信息:文件在磁盘中的存储位置、文件的类型(二进制文件或文本文件)、对文件进行何种操作(读或写)、对文件以怎样的方式读写(读一个字符、或读一串字符等)以及该文件调入到内存缓冲区的地址。标准文件系统为每一个文件定义一个结构体变量,命名为FILE,该结构体变量中包含了要读写文件的基本信息。FILE结构体类型一般定义在stdio.h头文件 中。具体定义如下:
typedef struct
{
short level; /*缓冲区满空程度*/
unsigned flags; /*文件状态标志*/
char fd; /*文件描述符*/
unsigned char hold; /*无缓冲则不读取字符*/
short bsize; /*缓冲区大小*/
unsigned char *buffer; /*数据缓冲区*/
unsigned char *curp; /*当前位置指针*/
unsigned istemp; /*临时文件指示器*/
short token; /*用于有效性检查*/
} FILE;
FILE结构体的定义是由编译系统完成的,对于编程人员来说,只要掌握它的使用即可,不必深究其内涵。
当需要打开一个文件时,系统将为该文件定义一个FILE型结构体变量,该变量中包含了文件的相关信息,并返回该文件在内存缓冲区的地址,这样,对文件的操作就转化为对指针的操作。例如:
FILE *fp;
这就定义了一个FILE型的指针,指针名为fp。但要注意,此时指针fp没有指向任何地址,需要用文件打开操作,将一个文件的地址赋给fp指针。
点击加载更多评论>>