首页 理论教育 C语言程序设计中的文件概念及文件指针

C语言程序设计中的文件概念及文件指针

时间:2023-11-23 理论教育 版权反馈
【摘要】:图10-1缓冲文件系统从图10-1可知,用户程序和外存文件都是和缓冲区完成数据交换,因此对用户程序来说,只要控制数据和缓冲区直接操作即可,而缓冲区和外存文件间的操作由系统自动完成。所谓文件指针即指向FILE类型的指针变量,其一般定义形式为:FILE*指针变量名;C语言中“文件指针”是一个非常重要的概念,程序员可以使用“文件指针”来完成文件和缓冲区之间的操作。

C语言程序设计中的文件概念及文件指针

在我们日常使用的应用程序中,通常都有“保存”这样一个命令,其功能是将我们输入的数据以某个指定的名字保存到磁盘上,这个被命名的存储到磁盘上的数据集合就是一个“文件”。如在word中输入一篇文章,输入完成后可以给输入的内容起一个名字并保存到磁盘上,这样方便我们以后的使用。

操作系统以“文件”的形式管理外存中的数据,文件名对于文件的管理非常重要,例如当要编辑某一个文件时,系统首先会按照给定的“文件名”在外存中寻找该文件,找到后将此文件中的数据读入到内存中供用户使用。

前边章节同学们所编写的程序中,都没有涉及有关文件的操作,输入数据时从键盘直接输入,输出时也是直接将数据输出到显示器,这导致程序运行完成后,无论是输入的数据还是输出的结果都没有办法再次得到。实质上C语言中提供了有关文件的一些基本操作,在以后开发程序时,也可以在自己的程序中加入一些诸如“保存”这样的文件操作功能,将输入的原始数据或者是运算的结果保存到外存中,供以后使用。

C语言在存储数据时不考虑数据之间的关系,仅是将“文件”作为字符(字节)序列来对待,认为一个文件就是一组连续存放的字符(字节),因此C语言中的文件被认为是“流”文件,这种形式的文件在存取时以字符(字节)为单位。

根据数据组织形式,可以将文件分为ASCII文件或进制文件。ASCII文件又称文本文件,它的每一个字节存放一个ASCII码,代表一个字符;二进制文件是将数据在内存中的二进制形式原样保存到文件中。如对于整数58,若按文本文件处理,认为该文件中有两个字符“5”和“8”,存储时用两个字节存放它们的ASCII码;若按二进制文件对待,则存放其二进制形式“00111010”,显然对同一组数据进行存储时,一般二进制文件会小于文本文件。

C语言中使用缓冲文件系统完成文件的读写操作,所谓缓冲文件系统指在内存中为每一个正在使用的文件开辟一个“缓冲区”。缓冲区是程序和文件之间的一个“缓冲”地带,程序和文件之间的数据交换通过缓冲区进行,如图10-1所示。

(www.xing528.com)

图10-1 缓冲文件系统

从图10-1可知,用户程序和外存文件都是和缓冲区完成数据交换,因此对用户程序来说,只要控制数据和缓冲区直接操作即可,而缓冲区和外存文件间的操作由系统自动完成。

C语言中有一个特定的类型标识符“FILE”,该标识符一般在stdio.h头文件中定义,实质上对应的是一个结构体,主要用来记录正在使用的文件的基本信息(如文件名、该文件的缓冲区在内存中的地址等)。所谓文件指针即指向FILE类型的指针变量,其一般定义形式为:

FILE*指针变量名;

C语言中“文件指针”是一个非常重要的概念,程序员可以使用“文件指针”来完成文件和缓冲区之间的操作。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈