C 语言复习与提高---VIII. 文件

来源:互联网 发布:超声波驱蚊器软件 编辑:程序博客网 时间:2024/05/16 02:09
VIII. 文件

在实际工作中,文件(尤其是磁盘文件)是至关重要的。编程编到最后,实际上就是在玩文件和指针。不懂得文件操作,可以说就等于不懂得编程。因为现在所有的软件几乎都要对文件进行大量操作,而不是简单地只对内存进行操作。

一、文件:在 C 中文件是一个逻辑概念,可以是外部设备(终端、打印机等),也可以是磁盘文件(记录在磁盘上的文件)。文件是一组相关数据的集合,通常被记录在外部设备上。从内容上看,文件不同于数组,无固定长度,不限制包括几种数据类型。每个文件都必须有一个文件名,OS 借助于文件名进行数据的查找和组织等。

二、对文件的 I/O 操作:

--> 写:将文件记录到外部设备上。

--> 读:将外部文件调入内存,以便进行处理。

1、在标准化 C 语言时,并没有把非缓冲 I/O 系统(即 UNIX 系统提供的一组 I/O 函数)融入到标准中,因为这些函数是多余的,而且非缓冲系统可能与支持 C 的某些环境无关。现在绝大多数程序均使用标准函数,因为它们可以被移植到所有环境中(包括 C++)。但是 C 的早期版本,以及现在的很多版本都支持与 UNIX 兼容的一组 I/O 函数,毕竟 C 语言就是为了实现 UNIX 系统而开发的。

2、对于 OS 来说,不同的设备文件的操作方式是有差别的,如磁盘文件可以随机存取,而终端设备文件则不行。为了避开这些细节问题,使程序员能够以更容易、更一致的方式操作文件,C 语言建立了在文件基础上的又一层逻辑概念:流(Stream)。在 C 中,当一个文件被打开时,就形成了一个流。所有的流都表现为同一种方式,程序也使用同一种方式操作所有的流。因此不用为不同的文件编写特殊的操作例程。

3、流与文件:在 C 中,所有的流都是相同的,而文件却不同。流使得 C 以完全一致的方式操作各种设备文件,程序是对流进行操作而不是文件,流与某个特殊文件的对应是由系统自动维系着。

三、一定要熟练掌握文件这部分内容,熟练掌握文件 I/O 函数的使用。I/O 操作是通过调用 C 的库函数实现的,而不是通过关键字实现。这使得 C 的文件系统非常灵活、强壮。并且,C++ 支持整个 ANSI C 文件系统。所以在从 C 向 C++ 移植时,无须改变 I/O 子程序。当然,在 C++ 中也定义了自己的、OO 的 I/O 系统(包括函数和操作符),它的功能是 C 的 I/O 功能的 2 倍。

 
原创粉丝点击