C语言进修教程第十章-文件(1)
文件
文件的根基观念
所谓“文件”是指一组相关数据的有序荟萃。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次利用了文件,譬喻源措施文件、方针文件、可执行文件、库文件 (头文件)等。文件凡是是驻留在外部介质(如磁盘等)上的, 在利用时才调入内存中来。从差异的角度可对文件作差异的分类。从用户的角度看,文件可分为普通文件和设备文件两种。
普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件、方针文件、可执行措施; 也可以是一组待输入处理惩罚的原始数据,可能是一组输出的功效。对付源文件、方针文件、 可执行措施可以称作措施文件,对输入输出数据可称作数据文件。
设备文件是指与主机相联的各类外部设备,如显示器、打印机、键盘等。在操纵系统中,把外部设备也看作是一个文件来举办打点,把它们的输入、输出等同于对磁盘文件的读和写。 凡是把显示器界说为尺度输出文件, 一般环境下在屏幕上显示有关信息就是向尺度输出文件输出。如前面常常利用的printf,putchar 函数就是这类输出。键盘凡是被指定尺度的输入文件, 从键盘上输入就意味着从尺度输入文件上输入数据。scanf,getchar函数就属于这类输入。
从文件编码的方法来看,文件可分为ASCII码文件和二进制码文件两种。
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。譬喻,数5678的存储形式为:
ASC码: 00110101 00110110 00110111 00111000
↓ ↓ ↓ ↓
十进制码: 5 6 7 8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 譬喻源措施文件就是ASCII文件,用DOS呼吁TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方法来存放文件的。 譬喻, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件固然也可在屏幕上显示, 但其内容无法读懂。C系统在处理惩罚这些文件时,并不区分范例,都当作是字符流,按字节举办处理惩罚。 输入输出字符流的开始和竣事只由措施节制而不受物理标记(如回车符)的节制。 因此也把这种文件称作“流式文件”。
本章接头流式文件的打开、封锁、读、写、 定位等各类操纵。文件指针在C语言顶用一个指针变量指向一个文件, 这个指针称为文件指针。通过文件指针就可对它所指的文件举办各类操纵。 界说说明文件指针的一般形式为: FILE* 指针变量标识符; 个中FILE应为大写,它实际上是由系统界说的一个布局, 该布局中含有文件名、文件状态和文件当前位置等信息。 在编写源措施时不必体贴FILE布局的细节。譬喻:FILE *fp; 暗示fp是指向FILE布局的指针变量,通过fp 即可找存放某个文件信息的布局变量,然后按布局变量提供的信息找到该文件, 实施对文件的操纵。习惯上也笼统地把fp称为指向一个文件的指针。文件的打开与封锁文件在举办读写操纵之前要先打开,利用完毕要封锁。 所谓打开文件,实际上是成立文件的各类有关信息, 并使文件指针指向该文件,以便举办其它操纵。封锁文件则断开指针与文件之间的接洽,也就克制再对该文件举办操纵。
在C语言中,文件操纵都是由库函数来完成的。 在本章内将先容主要的文件操纵函数。