文件的有关基本知识
1 什么是文件
文件有俩中类型,在程序设计中,主要用到两种文件:
程序文件: 包括源程序文件(后缀为.c),目标文件(后缀为.obj),可执行文件(后缀为.exe).这种文件的内容为程序代码。
数据文件: 文件的内容不是程序,而是供程序运行时读写的数据。
我们主要学习数据文件
文件(file)是程序设计中一个重要概念。所谓的“文件”一般指储存在外部介质上的数据的集合。
2 文件名
一个文件有唯一的文件标示,一遍用户识别和引用。文件表示包括3部分:
(1)文件路径
(2)文件名主干
(3)文件后缀名
如:
D: \ CC \ temp \ file1. dat
表示file1.dat文件存放在D盘中CC目录下temp子目录下面。
为了方便起见,文件标示常被称为文件名
3 文件类型
根据实际的形式,数据文件可分为ASCII文件和二进制文件
ASCII文件: 数据在外存中以ASCII代码形式储存,则需要在储存前进行转换。ASCII文件又称文本文件(text file),每一字节存放一个字符的ASCII代码。
二进制文件: 数据组文件中是以二进制形式储存,如果不加转换输出到外存中,就是二进制为文件,可以认为他是储存在内存中的数据映像,说以也被称为映像文件(image file)。
4 文件缓冲区
ANSI C标准采用“缓冲文件系统”处理数据文件,所谓的缓冲文件系统是指系统自动在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区从内存向磁盘输出数据,必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘。如果从磁盘向计算机读入数据,则一次从磁盘文件将一批数据输入到内存缓冲区,然后再从缓冲区逐个地将数据送到程序数据区。
5文件类指针
在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。
typedef struct
{
short level; //缓冲区"满"或者"空"的程度
unsigned flags; //文件状态标志
char fd; //文件描述符
unsigned char hold; //如无缓冲区不读取字符
short bsize; //缓冲区的大小
unsigned char *buffer;//数据缓冲区的位置
unsigned ar; //指针,当前的指向
unsigned istemp; //临时文件,指示器
short token; //用于有效性的检查
}FILE;
FILE是系统使用typedef定义出来的有关文件信息的一种结构体类型,结构中含有文件名、文件状态和文件当前位置等信息。
声明FILE结构体类型的信息包含在头文件“stdio.h”中,一般设置一个指向FILE类型变量的指针变量,然后通过它来引用这些FILE类型变量。通过文件指针就可对它所指的文件进行各种操作。 例如,可以定义一个指向文件型数据的指针变量:
FILE* fp;
定义fp是指向FILE类型数据的指针变量。