1.文件的定义
所谓文件一般指:存储在外部介质上数据的集合。一批数据是以文件的形式存放在外部介质上的。操作系统是以文件为单位对数据进行管理的。
按数据的组织方式,数据文件可以分为有结构文件和无结构文件两类。
(1)有结构文件也叫记录式文件,它以记录为单位来保存数据,每个记录由若干个数据项(也称字段)组成,每个数据项都规定其具有固定的长度。例如,数据库文件是一种有结构文件。
(2)无结构文件也叫流式文件,它以字符流或二进制位流的形式保存数据,即输入输出数据时都按“数据流”的形式进行处理,整个文件就是一个字符流或二进制流,记录与记录之间、字段与字段之间没有界限。文件的存取以字符(字节)或二进制位(bit)为单位,输入输出的数据流的开始和结束只受程序控制而不受物理符号(如回车换行符)的控制。
C语言使用的是流式文件。常见的文本文件和二进制文件属于流式文件。本章只讨论流式文件的打开、关闭、读、写、定位等操作。
ANSI C标准对文件的处理方法是“缓冲文件系统”,系统为每个打开文件在内存中开辟一个缓冲区。写文件时(从内存向磁盘输出数据),先送到缓冲区中,当缓冲区装满后才送到磁盘中去。读文件时,也经过缓冲区。这样做是为了提高读写效率,因为磁盘访问更耗时,一次读写一块数据,比每次读写单个字符更经济。
缓冲文件系统中,关键的概念是“文件指针”,每个被用的文件都在内存中开辟一个区,用来存放文件的名字、状态、位置等有关信息,这些信息室保存在一个结构体类型的变量中的。该结构体类型是由系统定义的,取名为FILE。有的C语言版本在stdio.h文件中有以下类型定义:
有了FILE类型之后,可以用它来定义若干个FILE结构体类型的变量,以便存放若干个文件的信息。
称指向FILE结构体类型的变量为文件类型指针,简称文件指针。定义文件指针的一般形式为:
FILE *指针变量名;
例如:
FILE *fp1,*fp2;
这里,fp1和fp2都被定义为指向FILE结构体类型的变量,即文件指针。这时的fp1和fp2还没有具体指向哪个文件的FILE结构。在实际编程中,通常将打开文件的FILE结构的首地址赋给文件指针。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。