C语言程序设计 第10章文件 壯京料故大学计算机系
1
第10章文件 2 10.1文件的概念 10.2文本文件的读写 10.3二进制文件的读写 2021-2-21
2021-2-21 2
10]文件的概述 3 10.1.1文件和文件指针 1.什么是文件 ●文件:存储在外部存储介质上相关数据的集合。 例如:程序文件中保存着程序,数据文件中保存着数据 C语言的源程序文本文件 米.OBJ 目标文件 二进制文件 k. EXE 可执行文件 二进制文件 文件的存储特性 文件是一个有序的数据序列。C语言把文件作 为一个字符(字节)序列处理,对文件的存取是 以字符(字节)为单位进行的。 2021-2-21
2021-2-21 3
10]文件的概述 4 10.1.1文件和文件指针 1.什么是文件 设备文件 在C语言中,“文件”的概念被进一步扩大, 把每台与主机相连的输入输出设备都看作是一个 文件。即把实际的物理设备抽象为逻辑文件,它 们被称为设备文件。 对外部设备的输入输出就是对设备文件的 读写。 2021-2-21
2021-2-21 4
101文件的概述 5 10.1.1文件和文件指针 2.文件的种类 ●按文件存储数据的形式 > ASCII文件(或称文本文件) ASCI码文件中每个字节存放一个ASCI代码,代表 个字符,此种存储形式便于输出显示,在D0S操作系统 下可以直接阅读 二进制文件 二进制文件中的数据是按照在内存中的二进制存储 格式存放的,此种存储形式节省存储单元。二进制文件 在D0S操作系统下不能直接阅读。 2021-2-21
2021-2-21 5
101文件的概述 10.1.1文件和文件指针 2.文件的种类 例如将整数1949分别存储在这两种数据文件中。 ASCI文件:ASCI码 00100110101010010100101 4 二进制文件:补码 000010001101个字节 2021-2-21
2021-2-21 6 ASCII文件:ASCII码 二进制文件:补码 占用4个字节 00000111 10011101 占用2个字节
101文件的概述 10.1.1文件和文件指针 2.文件的种类 ●按照对文件的处理方式 缓冲文件 83年以后 aNSI O标准中取消了非缓冲文件 系统,对文本文件和二进制文件均采用缓冲文 件系统进行处理。 非缓冲文件 利用非缓冲文件系统处理的文件称为非缓冲文件 系统处理非缓冲文件时,不为文件开辟缓冲区,需要程 序员自行设计并管理缓冲区。 2021-2-21
2021-2-21 7
101文件的概述 8 10.1.1文件和文件指针 3.缓冲文件和文件指针 系统对文件的处理过程就是 对文件进行输入/输出操作的过 程。 程序区 从文件读数据时,先一次性 从磁盘文件中读取一批数据到缓 数据区 冲区,然后再从缓冲区逐个将数 输入输出输出盘文件 据送入变量 文件 向文件写数据时,也是先将 缓冲区 输入 变量中数据送到缓冲区,待缓冲 内存 外存 区装满后,再一起存到磁盘文件图102系统对缓冲文件的处理 中 2021-2-21
2021-2-21 8 磁盘文件 输出 输入 图10.2 系统对缓冲文件的处理 输入 输出 程序区 数据区 文件 缓冲区 内存 外存
101文件的概述 10.1.1文件和文件指针 3.缓冲文件和文件指针 ●文件类型指针 左油立玄然由丈位△汇左庙照饮立在 typedef struct short level; / fill/ empty level of buffer * unsigned flags; / File status flags char fd /* File descriptor ** unsigned char hold; / Ungetc char if no buffer * short bsize:/* Buffer size unsigned char *buffer;/* Data transfer buffer * unsigned char *curp; Current active pointer */ unsigned istemp 7=* Temporary file indicator * short token; / Used for validity checking * FILE /*k This is the File object * 2021-2-21
2021-2-21 9 typedef struct { short level; /* fill/empty level of buffer */ unsigned flags; /* File status flags */ char fd; /* File descriptor */ unsigned char hold; /* Ungetc char if no buffer */ short bsize; /* Buffer size */ unsigned char *buffer; /* Data transfer buffer */ unsigned char *curp; /* Current active pointer */ unsigned istemp; /* Temporary file indicator */ short token; /* Used for validity checking */ } FILE; /* This is the FILE object */
101文件的概述 10 10.1.1文件和文件指针 4.标准文件 标准文件是外部设备中的三个特殊的设备文件。它们 的文件指针是系统定义的,并由系统自动打开和关闭。这 三个标准文件分别是: ①标准输入文件,文件指针为 stdin,系统指定为 键盘。 ②标准输出文件,文件指针为 stdout,系统指定为 显示器。 ③标准错误输出文件,文件指针为 Esterr,系统指 定为显示器,输出错误信息。 2021-2-21
2021-2-21 10