
文件 北京理工大学http://www.bit9.dhs.org/
北京理工大学http://www.bit9.dhs.org/

第十二章文件 第一节 文件概述 第二节 文件的处理 第三节 文件的顺序读写操作 第四节 文件的随机读写操作 第五节 文件操作的状态和出错检测 第六节 应用实例 共100页第2页
共 100 页 第 2 页 第十二章 文件 第一节 文件概述 第二节 文件的处理 第三节 文件的顺序读写操作 第四节 文件的随机读写操作 第五节 文件操作的状态和出错检测 第六节 应用实例

512-1文件栅概述 ·什么是文件 文件:存储在外部介质上(如磁盘和磁带等外存 储器)数据或信息的集合。 例如:程序文件中保存着程序,而数据文件中保存着 数据。 C12102.C: C语言的源程序 文本文件 C12102.0BJ: 目标文件 二进制文件 C12102.EXE: 可执行文件 二进制文件 ●文件的性质 例c12101 文件是一个有序的数据序列。文件的所有数据之 间有着严格的排列次序的关系(类似数组类型的数 据),要访问文件中的数据,必须按照它们的排列顺 序,依次进行访问。 共100页第3页
共 100 页 第 3 页 ⚫ 什么是文件 文件:存储在外部介质上(如磁盘和磁带等外存 储器)数据或信息的集合。 例如:程序文件中保存着程序,而数据文件中保存着 数据。 C12_102.C: C语言的源程序 文本文件 C12_102.OBJ: 目标文件 二进制文件 C12_102.EXE: 可执行文件 二进制文件 ⚫ 文件的性质 文件是一个有序的数据序列。文件的所有数据之 间有着严格的排列次序的关系(类似数组类型的数 据),要访问文件中的数据,必须按照它们的排列顺 序,依次进行访问。 §12-1 文件概述 例C12_101

512-1文件概述(续1) ·系统对文件的处理过程 系统对文件的处理过程就是对文件进行输入/输出 操作的过程。 文件输入/输出的一般过程: 写文件称为输出 输出文件缓冲区 程序 文件 数据区 输入文件缓冲区 计算机内存 计算机外存 读文件称为输入 共100页第4页
共 100 页 第 4 页 ⚫ 系统对文件的处理过程 系统对文件的处理过程就是对文件进行输入/输出 操作的过程。 文件输入/输出的一般过程: §12-1 文件概述(续1) 文件 程序 数据区 输出文件缓冲区 输入文件缓冲区 计算机内存 计算机外存 写文件称为输出 读文件称为输入

512-1文件概述(续2) ·文件的分类 ◆从文件数据的组织形式看 数据的组织形式是指数据在磁盘上是以什么格式进行存储的。 从这个角度看,文件分为两类: ★ASCII文件(或称文本文件,即TEXT文件) ★二进制文件 文本文件中保存的数据,采用ASCII码作为存储方式,先将 全部数据转换为ASCII码形式。每个ASCII字符占用一个字节。 ASCII文件在DOS操作系统下可以直接阅读。 二进制文件中保存的数据,是将数据在内存中二进制存储 格式不做任何转换,直接存入文件中。 二进制文件在操作系统下不能直接阅读。 共100页第5页
共 100 页 第 5 页 ⚫ 文件的分类 ◆ 从文件数据的组织形式看 数据的组织形式是指数据在磁盘上是以什么格式进行存储的。 从这个角度看,文件分为两类: ★ ASCII文件(或称文本文件,即TEXT文件) ★ 二进制文件 文本文件中保存的数据,采用ASCII码作为存储方式,先将 全部数据转换为ASCII码形式。每个ASCII字符占用一个字节。 ASCII文件在DOS操作系统下可以直接阅读。 二进制文件中保存的数据,是将数据在内存中二进制存储 格式不做任何转换,直接存入文件中。 二进制文件在操作系统下不能直接阅读。 §12-1 文件概述(续2)

5121文件概述(续3) 。两种文件组织形式 ◆例如:将整数1024存储在不同组织形式的文件中。 ASCI文件:ASCⅡ码 0 ’2 内存中的存储形式:补码 占用4个字节 0000010000000000 二进制文件:补码 0000010000000000 占用2个字节 共100页第6页
共 100 页 第 6 页 ⚫ 两种文件组织形式 ◆ 例如:将整数1024存储在不同组织形式的文件中。 §12-1 文件概述(续3) 内存中的存储形式:补码 0000 0100 0000 0000 ASCII文件:ASCII码 ’1 ’ ’0 ’ ’2 ’ ’4 ’ 二进制文件:补码 0000 0100 0000 0000 占用4个字节 占用2个字节

512-1文件挪概述(续3) 。两个不同格式文件的比较 在ASCII文件中,每个字符是以ASCII码 形式存储,方便了对字符的逐个处理,同时 在操作系统下,可以直接识别。 缺点是占用磁盘存储空间多,并且系统要 付出由二进制形式向ASCII转换的时间开销。 用二进制形式输出,可以节省磁盘空间和 转换时间,但输出的数据因为是内存的格式, 在操作系统下不能直接识别。 共100页第7页
共 100 页 第 7 页 §12-1 文件概述(续3) ⚫ 两个不同格式文件的比较 在ASCII文件中,每个字符是以ASCII码 形式存储,方便了对字符的逐个处理,同时 在操作系统下,可以直接识别。 缺点是占用磁盘存储空间多,并且系统要 付出由二进制形式向ASCII转换的时间开销。 用二进制形式输出,可以节省磁盘空间和 转换时间,但输出的数据因为是内存的格式, 在操作系统下不能直接识别

512-1文件概述(续4) ◆从用户观点看,文件可分为两类: 普通文件(亦称为磁盘文件) 特殊文件(亦称为标准设备文件或标准I/0文件) 普通文件是以磁盘为对象且无其它特殊性能的文件。 特殊文件是以终端为对象的标准的设备文件。 在C语言中,“文件”的概念具有更广泛的意义, 它把与每台主机相连的所有输入输出设备都看作是一 个文件。即把实际的物理设备抽象为逻辑文件,它们 也被称为设备文件。 例如:键盘是输入文件stdin (标准输入文件) 显示器是输出文件stdout(标准输出文件) 打印机是输出文件PRN 例c12102 共100页第8页
共 100 页 第 8 页 ◆ 从用户观点看,文件可分为两类: ▼普通文件(亦称为磁盘文件) ▼特殊文件(亦称为标准设备文件或标准I/O文件) 普通文件是以磁盘为对象且无其它特殊性能的文件。 特殊文件是以终端为对象的标准的设备文件。 在C语言中, “文件”的概念具有更广泛的意义, 它把与每台主机相连的所有输入输出设备都看作是一 个文件。即把实际的物理设备抽象为逻辑文件,它们 也被称为设备文件。 例如:键 盘是输入文件stdin (标准输入文件) 显示器是输出文件stdout(标准输出文件) 打印机是输出文件PRN §12-1 文件概述(续4) 例C12_102

512,1文件概述(续5) ◆从C语言对文件的处理方法看 从C语言对文件的处理方法来看,可以将文件分为两类: ▲缓冲文件系统 ▲非缓冲文件系统 缓冲文件系统:对每个正在使用的文件,系统自 动在内存中为其开辟一个文件缓冲区。也称为高级文 件操作。 非缓冲文件系统:系统不会自动开辟缓冲区,文 件缓冲区是由程序自己设置的。也称为低级文件操作。 在83年以后ANSI C标准中取消了非缓冲文件系统, 对文本文件和二进制文件均统一采用缓冲文件系统进 行处理。 。本课程学习在缓冲式文件操作方式下,对磁盘文件进 行基本操作操作。 共100页第9页
共 100 页 第 9 页 ◆ 从C语言对文件的处理方法看 从C语言对文件的处理方法来看,可以将文件分为两类: ▲缓冲文件系统 ▲非缓冲文件系统 缓冲文件系统:对每个正在使用的文件,系统自 动在内存中为其开辟一个文件缓冲区。也称为高级文 件操作。 非缓冲文件系统:系统不会自动开辟缓冲区,文 件缓冲区是由程序自己设置的。也称为低级文件操作。 在83年以后ANSI C标准中取消了非缓冲文件系统, 对文本文件和二进制文件均统一采用缓冲文件系统进 行处理。 ⚫ 本课程学习在缓冲式文件操作方式下,对磁盘文件进 行基本操作操作。 §12-1 文件概述(续5)

512-2文件的处理 。文件类型指针 在缓冲文件系统中,对每个正在使用的文件 都要说明并使用一个FILE类型的结构变量,该 结构变量用于存放文件的有关信息,如文件名、 文件状态等。 在C语言中,无论是一般磁盘文件还是设备 文件,都要通过文件结构的数据集合进行输入 输出处理。 文件结构不需要用户自己定义,是由系统事 先已经定义好的,固定包含在头文件si01h 中。 共100页第10页
共 100 页 第 10 页 ⚫ 文件类型指针 在缓冲文件系统中,对每个正在使用的文件 都要说明并使用一个FILE类型的结构变量,该 结构变量用于存放文件的有关信息,如文件名、 文件状态等。 在C语言中,无论是一般磁盘文件还是设备 文件,都要通过文件结构的数据集合进行输入 输出处理。 文件结构不需要用户自己定义,是由系统事 先已经定义好的,固定包含在头文件 stdio.h 中。 §12-2 文件的处理