文档介绍:第12章文件类型
文件类型与文件指针
文件的打开与关闭
文件的读写与建立
文件辅助操作
程序设计举例
文件类型与文件指针
1. 文本文件和二进制文件
C语言文件把数据看作是一连串的字符(字节)。 C语言文件是一个字符(字节)的序列,是一字符流或字节流,是一种流式文件。根据数据的组织形式,可分为文本文件和二进制文件。
文本文件又称为ASCII文件,每一个字节中存放一个ASCII代码, 代表一个字符。例如,一个整数123, 若用ASCII文件存放,占3个字节的存储单元,1、 2、 3各用一个字节存储。而1、2、3的ASCII码分别为49、50、51,故123用ASCII文件存放时,存放形式为001100010011001000110011。
二进制文件是直接用数据的二进制形式存放。例如,对整数123,二进制为0000000001111011,用二进制文件存放,需 2 个字节,存放形式为0000000001111011。
2. 缓冲文件系统和非缓冲文件系统
在缓冲文件系统中,系统自动在内存中为每个正在使用的文件开辟一个缓冲区,文件的存取都是通过缓冲区进行的。缓冲区相当于一个中转站,它的大小由具体的C版本规定,一般为512字节。缓冲文件系统原来用于处理文本文件。
在非缓冲文件系统中,系统不为所打开的文件自动开辟缓冲区, 缓冲区的开辟由程序完成。非缓冲文件系统原来用于处理二进制文件。
ANSI C不再采用非缓冲文件系统,而只采用缓冲文件系统,在处理二进制文件时,也通过缓冲文件系统进行。ANSI C通过扩充缓冲文件系统,使缓冲文件系统既能处理文本文件, 又能处理二进制文件。
3. 内部文件和外部文件
存放在外部介质上的文件称为外部文件,通过文件名标识。 C程序中的文件称为内部文件,用文件指针来描述。
程序中要实现对文件的处理,先必须在内部文件与外部文件之间建立联系,打开文件;然后方可对文件进行操作。文件最基本的操作是读写操作;操作完成应当切断内部文件与外部文件之间的联系,关闭文件。
对文件进行的所有操作通过C编译系统提供的标准函数完成,这些函数的信息包含在头文件“”中。
文件类型
文件类型是一特殊的结构体类型,一般命名为FILE。用户可以直接使用FILE来定义文件类型变量,存放要处理的文件的基本信息。
各种C编译系统的FILE定义可以不同,但均包含进行文件操作所需的各种信息。
下面是TURBO C中对FILE的定义:
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 *fp, *fpa[10];
定义了文件指针变量fp和文件指针变量数组fpa。文件指针变量fp及文件指针变量数组fpa的每个分量可以指向一个文件的信息。
文件的打开与关闭
文件的打开
文件的打开用fopen( )函数完成,调用方式通常为:
fp=fopen(文件名,文件使用方式);