根据数据的组织形式,数据文件可分为ASCII文件和二进制文件,数据在内存中是以而二进制形式存储的,如果不加转换的输出到外存,就是二进制文件,可以认为他就是存储在内存的数据映像,所以也称之为映像文件。如果要求在外存上以ASCII代码形式存储,则需要在存储前进行转换。ASCII文件又称为文本文件,每一个字存放一个字符的ASCII代码。
文件缓冲区
ANSIC标准采用‘“缓冲文件系统”处理数据文件,所谓缓冲文件系统是指系统自动的在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区。从内存向磁盘输入数据必须要先送到程序数据区,让后再从缓冲区逐个的将数据送到程序数据区。这样做是为了节省数据存取时间,提高效率,缓冲区的大小是个个具体的C编译系统确定。
文件类型指针
缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”.每个被使用的文件都在内存中开辟一个相应的文件信息区,用来存放文件的有关信息(如文件的名字、文件的状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名为FILE。
例如有一种C编译环境提供的stdio.h头文件中有以下的文件类型声明:
typedef struct
{
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer;
unsigned char *curp;
unsigned istenp;
short token;
}FILE;
不同的C编译系统的FILE类型包含的内容不完全相同,但大同小异。