c 文件操作
文件
文件的基本概念
所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上
在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件
头文件等。文件通常是驻留在外部介质如磁盘等上的, 在使用时才调入内存中来。从不同
的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。
普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件、目标文
件、可执行程序; 也可以是一组待输入处理的原始数据,或者是一组输出的结果。对于源文
件、目标文件、可执行程序可以称作程序文件,对输入输出数据可称作数据文件。
设备文件是指与主机相联的各种外部设备,如显示器、打印机、键盘等。在操作系统中,
把外部设备也看作是一个文件来进行管理,把它们的输入、输出等同于对磁盘文件的读和写。
通常把显示器定义为标准输出文件, 一般情况下在屏幕上显示有关信息就是向标准输出文件输
出。如前面经常使用的 函数就是这类输出。键盘通常被指定标准的输入文件,
从键盘上输入就意味着从标准输入文件上输入数据。 函数就属于这类输入。
从文件编码的方式来看,文件可分为 码文件和二进制码文件两种。
文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放
对应的 码。例如,数 的存储形式为:
码:
↓ ↓ ↓ ↓
十进制码: 共占用 个字节。 码文件可在屏幕上按
字符显示, 例如源程序文件就是 文件,用 命令 !" 可显示文件的内容。 由于是
按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。 例如, 数 的存储形式为:
只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读
懂。 系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出
字符流的开始和结束只由程序控制而不受物理符号如回车符的控制。 因此也把这种文件称作
“流式文件”。
本章讨论流式文件的打开、关闭、读、写、 定位等各种操作。文件指针在C语言中用一个
指针变量指向一个文件, 这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种
操作。定义说明文件指针的一般形式为: #$"%指针变量标识符; 其中 #$" 应为大写,它实
际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。 在编
写源程序时不必关心 #$" 结构的细节。例如:#$"%; 表示 是指向 #$" 结构的指针变
量,通过 即可找存放某个文件信息的结构变量,然后按结构变量提供的信息找到该文件,
实施对文件的操作。习惯上也笼统地把 称为指向一个文件的指针。文件的打开与关闭文件在