第十三章文件 ■131文件概述 133文件的打开与关闭 134文件的顺序读写 135文件的定位与随机读写
第十三章 文件 ◼ 13.1 文件概述 ◼ 13.3 文件的打开与关闭 ◼ 13.4 文件的顺序读写 ◼ 13.5 文件的定位与随机读写
131文件概述 文件的概念 1.文件:指存储在外部介质上的数据的集合 操作系统是以文件为单位对数据进行管理的如果想 使用存在外部介质上的数据,必须先按文件名找到指定的 文件然后再从文件中读取数据;如果要向外部介质上存储 数据,也必须先建立一个文件,再向它输出数据 文件除了包括磁盘上存储的内容外,从操作系统的角度 看与主机相连的各种输入输出设备也是文件.例如,键盘是 输入文件,显示器是输出文件 2.文件的分类 C语言把文件看作是一个字节的序列,即文件是由一个 个字节的数据顺序组成的根据数据的组织形式把文件 分为两类:文本文件和二进制文件
13.1 文件概述 一、 文件的概念 1. 文件: 指存储在外部介质上的数据的集合 操作系统是以文件为单位对数据进行管理的. 如果想 使用存在外部介质上的数据,必须先按文件名找到指定的 文件,然后再从文件中读取数据; 如果要向外部介质上存储 数据, 也必须先建立一个文件, 再向它输出数据. 文件除了包括磁盘上存储的内容外, 从操作系统的角度 看与主机相连的各种输入输出设备也是文件. 例如, 键盘是 输入文件, 显示器是输出文件. 2. 文件的分类 C语言把文件看作是一个字节的序列, 即文件是由一个 一个字节的数据顺序组成的. 根据数据的组织形式把文件 分为两类: 文本文件和二进制文件
(1)文本文件(也称ASCI文件) 文件的每一个字节存放一个ASCI码,代表一个字符 其优点是便于对字符进行处理,缺点是占用存储空间 较多,二进制形式与ASCI码形式转换需要时间 (2)二进制文件 把内存中的数据按其在在内存中的存储形式原样输出 到磁盘上存放其优点是节省空间,输入输出速度快; 缺点是不能直接输出字符形式 设内存有一整数2460,内存中的存储形式: 即十进制数2460所对应的二进制数形式000100110011100 2460在文本文件中的存储形式(非压缩的BCD码): 即每位十进制数占8为二进制数前4位为填充位,后4为十进制数值所对 应的二进制形式 0011001000110100001101100110000 2460在二进制文件中的存储形式:00000110
(1) 文本文件(也称ASCII文件) 文件的每一个字节存放一个ASCII码, 代表一个字符. 其优点是便于对字符进行处理, 缺点是占用存储空间 较多, 二进制形式与ASCII码形式转换需要时间 (2) 二进制文件 把内存中的数据按其在在内存中的存储形式原样输出 到磁盘上存放. 其优点是节省空间, 输入输出速度快; 缺点是不能直接输出字符形式 设内存有一整数2460, 内存中的存储形式: 即十进制数2460所对应的二进制数形式 0000 1001 1001 1100 2460在文本文件中的存储形式(非压缩的BCD码): 即每位十进制数占8为二进制数前4位为填充位,后4为十进制数值所对 应的二进制形式。 0011 0010 0011 0100 0011 0110 0011 0000 2460在二进制文件中的存储形式: 0000 1001 1001 1100
磁盘文件系统 1.磁盘文件系统对文件的处理方法 从磁盘文件输入数据时(即读文件)先将数据送到“输入 冲区”,再从缓冲区将数据传送给程序数据区(即传给程 中的变量);向磁盘文件输出数据时即写文件),先将程序中 变量的值送到“输出缓冲区”,等缓冲区装满后再将数据 起传送给磁盘文件.使用缓冲区的目的是为了减少对磁盘 的定际读写次数 写文件 磁盘文件—输出缓冲区—程序数据区 2.磁盘文件系统的分类 (1)缓冲文件系统:系统自动的在内存区为每一个正在使用 的文件开辟一个缓冲区.缓冲区的大小由具体的C版本 确定,一般为512字节 (2)非缓冲文件系统:系统不是自动开辟确定大小的缓冲区, 由程序为每个文件设定缓冲区及其大小(即缓冲区由用 户根据需要自己进行设置)
二、 磁盘文件系统 1. 磁盘文件系统对文件的处理方法 从磁盘文件输入数据时(即读文件), 先将数据送到“输入 缓冲区”, 再从缓冲区将数据传送给程序数据区(即传给程 序 中的变量) ; 向磁盘文件输出数据时(即写文件), 先将程序中 变量的值送到“输出缓冲区”, 等缓冲区装满后再将数据一 起传送给磁盘文件. 使用缓冲区的目的是为了减少对磁盘 的实际读写次数 2. 磁盘文件系统的分类 (1) 缓冲文件系统: 系统自动的在内存区为每一个正在使用 的文件开辟一个缓冲区. 缓冲区的大小由具体的C版本 确定, 一般为512字节. (2) 非缓冲文件系统: 系统不是自动开辟确定大小的缓冲区, 由程序为每个文件设定缓冲区及其大小(即缓冲区由用 户根据需要自己进行设置) . 读文件 写 磁盘文件 输入缓冲区出 程序数据区
三、文件类型指针 要使用一个文件需要有一定的信息,如文件当前的读 写位置,与文件对应的内存缓冲区地址,文件的操作方式等 菜些信息都存放在“文件信息区”中,“文件信息区”是一 结构体变量,其结构体类型由系统定义,类型名为FIE 定义形式:FE*指针变量名; 注意: 1.只有通过文件指针变量才能调用相应的文件 2.有n个文件就要定义n个文件指针变量,分别对应各个 文件 3.FLLE必须大写
三、 文件类型指针 要使用一个文件需要有一定的信息, 如文件当前的读 写位置, 与文件对应的内存缓冲区地址, 文件的操作方式等. 这些信息都存放在“文件信息区”中 , “文件信息区”是一 个 结构体变量, 其结构体类型由系统定义, 类型名为FILE 定义形式: FILE * 指针变量名; 注意: 1. 只有通过文件指针变量才能调用相应的文件 2. 有n个文件就要定义n个文件指针变量, 分别对应各个 文件 3. FILE必须大写