文件的基本概念(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

§6-1 文件概述
文件的分类
◆ 从用户观点看
从用户使用的观点看,文件可分为两类:
。普通文件(亦称为磁盘文件) 。特殊文件(亦称为标准设备文件或标准I/O文件)
普通文件是以磁盘为对象且无其它特殊性能的文件。
特殊文件是以终端为对象的标准的设备文件。
在C语言中,“文件”的概念具有更广泛的意义,它把与每 台主机相连的所有输入输出设备都看作是一个文件。即把实际 的物理设备抽象为逻辑文件,它们也被称为设备文件。
C语言中提供了三个标准设备文件的指针:
stdin
标准输入文件(键盘)
stdout 标准输出文件(显示器)
stderr 标准错误输出文件(显示器)
.
10
§6-2 文件处理-操作文件的一般步骤
使用文件的一般步骤
打开文件————操作文件————关闭文件 打开文件:建立用户程序与文件的联系,为文件开辟文件缓冲区。 操作文件:是指对文件的读、写、追加和定位操作。
文件结构不需要用户自己定义,是由系统事先已经定义好的,固
定包含在头文件 stdio.h 中。
typedef struct
{ int _fd;
/* 文件位置指针,即当前文件的读写位置 */

int _cleft; /* 文件缓冲区中剩余的字节数 */

int _mode;
/* 文件操作模式 */

char * nextc; /* 用于文件读写的下一个字符位置 */
文件型指针变量说明形式
FILE * 文件型指针变量名;
例如: FILE * fp; /* fp 是一指针变量,指向文件结构 */
当要同时使用多个文件时,则必须有多个不同的文件指针。
.
9
§6-2 文件处理-标准设备文件
系统标准设备文件
标准设备文件是由系统控制,由系统自动打开和关 闭,标准设备文件的文件结构的指针由系统命名,用 户在程序中可直接使用。
读操作:是从文件中读出数据,即将文件中的数据读入计算机; 写操作:是向文件中写入数据,即向文件输出数据。 追加操作:将数据写到原有数据的后面。 定位操作:文件读写位置指针。 关闭文件:切断文件与程序的联系,将文件缓冲区的内容写入磁 盘,并释放文件缓冲区。
C语言通过标准I/O库(std.io.h)函数实现文件操作11
.

第六章 文件
本章要点
• 文件的基本概念
• 文件的基本函数
• 文件的顺序读写
• 文件的随机读写 • 文件简单应用
.
2
§6-1 文件概述
文件的定义
文件:存储在外部介质上(如磁盘等外存储器)的数据或信息的 集合。
例如:程序文件中保存着程序,而数据文件中保存着数据。
C7.C:
C语言的源程序
文本文件
作的过程。
文件输入/输出的一般过程:
写文件称为输出
程序 数据区
输出文件缓冲区 输入文件缓冲区
文件
计算机内存
计算机外存
. 读文件称为输入
4
§6-1 文件概述
文件的分类 ◆ 从文件数据的组织形式看
数据的组织形式是指数据在磁盘上是以什么格式进行存储的。 从这个角度看,文件分为两类:
。ASCII文件(或称文本文件,即TEXT文件) 。二进制文件 文本文件中保存的数据,采用ASCII码作为存储方式,先将 全部数据转换为ASCII码形式。每个ASCII字符占用一个字节。 ASCII文件在DOS操作系统下可以直接阅读。 二进制文件中保存的数据,是将数据在内存中二进制存储 格式不做任何转换,直接存入文件中。 二进制文件在操作系统下不能直接阅读。
例如:键盘是输入文件stdin (标准输入文件)
显示器是输出文件stdout(标准输出文件)
打印机是输出文件P.RN
7
§6-2 文件处理
文件指针
在缓冲文件系统中,对每个正在使用的文件都要说明并使用一个 FILE类型的结构变量,该结构变量用于存放文件的有关信息, 如文件名、文件状态等。
在C语言中,无论是一般磁盘文件还是设备文件,都要通过文件 结构的数据集合进行输入输出处理。

char * _buff; /* 文件缓冲区位置(指针) */

} FILE ;
FILE是文件结构类型的类型名。 .
8
§6-2 文件处理-文件指针
文件指针
文件结构在打开文件时由操作系统自动建立,用户使用文件时无 需重复定义。文件结构中最重要的信息是:记录了文件读写操 作时的位置指针。
在C程序中,凡是要对已打开的文件进行操作,都要通过指向该文 件结构的指针。为此,需要在程序中说明指向文件结构的指针, 即定义FILE型(文件型)的指针变量。
若文件打开失败,返回NULL。
.
12
§6-2 文件处理-fopen的三种方式
打开文件(fopen) fopen函数的调用形式是: FILE * fp; fp = fopen ( 文件名, 文件使用方式);
§6-2 文件处理-fopen
打开文件(fopen)
fopen函数的调用形式是:
FILE * fp;
fp = fopen ( 文件名, 文件使用方式);
文件名:需要打开的文件名称(字符串)。
文件使用方式:是具有特定含义的符号。
函数功能
按指定的文件使用方式打开指定的文件。
若文件打开成功,则返回值为非NULL指针;
在ASCII文件中,每个字符是以ASCII码形式存储,方便了 对字符的逐个处理,同时在操作系统下,可以直接识别。
缺点是占用磁盘存储空间多,并且系统要付出由二进制形 式向ASCII转换的时间开销。
用二进制形式输出,可以节省磁盘空间和转换时间,但输 出的数据因为是内存的格式,在. 操作系统下不能直接识别。6
C7.OBJ: 目标文件
二进制文件
C7.EXE: 可执行文件
二进制文件
文件的性质
文件是一个有序的数据序列。文件的所有数据之间有着严格的排 列次序的关系(类似数组类型的数据),要访问文件中的数据,
必须按照它们的排列顺序,依次进行访问。
.
3
§6-1 文件概述
系统对文件的处理过程
系统对文件的处理过程就是对文件进行输入/输出操
.
5
§6-1 文件概述
两种文件组织形式
◆ 例如:将整数1024存储在不同组织形式的文件中
内存中的存储形式:补码
ASCII文件:ASCII码 ’1’ ’0’ ’2’ ’4’
占用4个字节
0000 0100 0000 0000
二进制文件:补码
0000 0100 0000 0000 占用2个字节
两个不同格式文件的比较
相关文档
最新文档