文件的分类

   根据数据的组织形式,数据文件可分为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类型包含的内容不完全相同,但大同小异。

猜你喜欢

转载自blog.csdn.net/qq_45688164/article/details/104595580