C 语言程序设计
第10章文件
怀化职业技术学院计算机系
胡炜制作
1
第10章文件
文件的概念
文本文件的读写
二进制文件的读写
2017/7/12
2
文件:存储在外部存储介质上相关数据的集合。
例如:程序文件中保存着程序,数据文件中保存着数据。
*.C C语言的源程序 文本文件
*.OBJ 目标文件二进制文件
*.EXE 可执行文件二进制文件
文件的存储特性
文件是一个有序的数据序列。C语言把文件作为一个字符(字节)序列处理,对文件的存取是以字符(字节)为单位进行的。
文件的概述
文件和文件指针
1. 什么是文件
2017/7/12
3
设备文件
在C语言中,“文件”的概念被进一步扩大,把每台与主机相连的输入输出设备都看作是一个文件。即把实际的物理设备抽象为逻辑文件,它们被称为设备文件。
对外部设备的输入输出就是对设备文件的读写。
文件的概述
文件和文件指针
1. 什么是文件
2017/7/12
4
按文件存储数据的形式
ASCII文件(或称文本文件)
ASCII码文件中每个字节存放一个ASCII代码,代表一个字符,此种存储形式便于输出显示,在DOS操作系统下可以直接阅读。
二进制文件
二进制文件中的数据是按照在内存中的二进制存储格式存放的,此种存储形式节省存储单元。二进制文件在DOS操作系统下不能直接阅读。
文件的概述
文件和文件指针
2. 文件的种类
2017/7/12
5
例如将整数1949分别存储在这两种数据文件中。
ASCII文件:ASCII码
二进制文件:补码
占用4个字节
占用2个字节
文件的概述
文件和文件指针
2. 文件的种类
00110001
00111001
00110100
00111001
'1'
'9'
'4'
'9'
00000111
10011101
2017/7/12
6
按照对文件的处理方式
缓冲文件
利用缓冲文件系统处理的文件称为缓冲文件。系统处理方法是在内存中为每个正在使用的缓冲文件开辟一个缓冲区,其大小是512个字节。对文件读写数据都通过缓冲区进行。
非缓冲文件
利用非缓冲文件系统处理的文件称为非缓冲文件。系统处理非缓冲文件时,不为文件开辟缓冲区,需要程序员自行设计并管理缓冲区。
83年以后ANSI C标准中取消了非缓冲文件系统,对文本文件和二进制文件均采用缓冲文件系统进行处理。
文件的概述
文件和文件指针
2. 文件的种类
2017/7/12
7
系统对文件的处理过程就是对文件进行输入/输出操作的过程。
从文件读数据时,先一次性从磁盘文件中读取一批数据到缓冲区,然后再从缓冲区逐个将数据送入变量。
向文件写数据时,也是先将变量中数据送到缓冲区,待缓冲区装满后,再一起存到磁盘文件中。
文件的概述
文件和文件指针
3. 缓冲文件和文件指针
磁盘文件
输出
输入
系统对缓冲文件的处理
输入输出
程序区
数据区
文件缓冲区
外存
内存
2017/7/12
8
文件的概述
文件和文件指针
3. 缓冲文件和文件指针
文件类型指针
在缓冲文件系统中,对每个正在使用的文件都自动分配一个FILE类型的结构体变量,用于存放文件的有关信息,如文件号、文件状态、缓冲区地址和大小等。
FILE类型是系统定义的,
在C语言中,无论对磁盘文件还是设备文件的读/写都要通过FILE类型的结构体变量进行。因此对于每个使用中的磁盘文件必须先定义一个FILE类型的文件指针变量并指向此变量。
FILE *文件指针变量名;
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 ist
c12-文件(待修改) 来自淘豆网m.daumloan.com转载请标明出处.