清华大学出版社 TSINGHUA UNIVERSITY PRESS §1010文件的有关概念 10.1.3文件的分类 根据数据的组织形式,数据文件可分为ASC工工 文件和二进制文件。 ASCI文件文本文件)每一个字节放一个ASC代码 进制文件:把内存中的数据按其在內存中的存储形 式原样输出到磁盘上存放. 例:整数10000在内存中的存储形式以及分别按ASCI 码形式和二进制形式输出如下图所示: ASCI形式 内存中 00110001001100000110000011000001100 存储形式 (1) (0) 0010011100010000 二进制形式 0010011100010000
10.1.3 文件的分类 根据数据的组织形式,数据文件可分为ASCII 文件和二进制文件。 ASCII文件(文本文件):每一个字节放一个ASCII代码 二进制文件:把内存中的数据按其在内存中的存储形 式原样输出到磁盘上存放. 例:整数10000在内存中的存储形式以及分别按ASCII 码形式和二进制形式输出如下图所示: §10.1 C文件的有关概念
清华大学出版社 TSINGHUA UNIVERSITY PRESS §1010文件的有关概念 10.1.3文件的分类 ASCI文件和二进制文件的比较 ASCI文件便于对字符进行逐个处理,也便于输出 字符。但一般占存储空间较多,而且要花费转换时 二进制文件可以节省外存空间和转换时间,但一个 字节并不对应一个字符,不能直接输出字符形式。 一般中间结果数据需要暂时保存在外存上,以后又 需要输入内存的,常用二进制文件保存
§10.1 C文件的有关概念 10.1.3 文件的分类 ASCII文件和二进制文件的比较: ASCII文件便于对字符进行逐个处理,也便于输出 字符。但一般占存储空间较多,而且要花费转换时 间。 二进制文件可以节省外存空间和转换时间,但一个 字节并不对应一个字符,不能直接输出字符形式。 一般中间结果数据需要暂时保存在外存上,以后又 需要输入内存的,常用二进制文件保存
清华大学出版社 TSINGHUA UNIVERSITY PRESS §1010文件的有关概念 10.1.4文件缓冲区 ANSI O标准采用“缓冲文件系统″处理文件. 缓冲文件系统:系统自动地在内存区为每一个正 在使用的文件开辟一个缓冲区 从内存向磁盘输出数据必须先送到内存中的缓冲 区,装满缓冲区后才一起送到磁盘去 →输出文件缓冲区 程序 文件 数据区 输入文件缓冲区
§10.1 C文件的有关概念 10.1.4 文件缓冲区 ANSI C标准采用“缓冲文件系统”处理文件. 缓冲文件系统:系统自动地在内存区为每一个正 在使用的文件开辟一个缓冲区。 从内存向磁盘输出数据必须先送到内存中的缓冲 区,装满缓冲区后才一起送到磁盘去。 文件 程序 数据区 输出文件缓冲区 输入文件缓冲区
清华大学出版社 TSINGHUA UNIVERSITY PRESS §101c文件的有关概念 10.1.5文件指针 不同的C编译系统的FILE类型包含的内容不完全相同,但大同小 异。 Turbo C在 stdio.h文件中有以下的文件类型声明: typedef struct shortlevel;/*缓冲区“满”或“空”的程度*/ unsignedflags;/*文件状态标志*/ chard;/*文件描述符*/ unsignedcharhold;/*如无缓冲区不读取字符*/ shortbsize;/*缓冲区的大小* unsignedchar*buffer;y数据缓冲区的位置*/ unsigned*curp/指针,当前的指向*/ unsignedistemp;/临时文件,指示器* shorttoken;/用于有效性检查*/}FILE; 在缓冲文件系统中,每个被使用的文件都要在内存中开辟一 FILE类型的区存放文件的有关信息
§10.1 C文件的有关概念 10.1.5 文件指针 不同的C编译系统的FILE类型包含的内容不完全相同,但大同小 异。 Turbo C在stdio.h文件中有以下的文件类型声明: typedef struct { shortlevel; /*缓冲区“满”或“空”的程度*/ unsignedflags; /*文件状态标志*/ charfd; /*文件描述符*/ unsignedcharhold; /*如无缓冲区不读取字符*/ shortbsize; /*缓冲区的大小*/ unsignedchar*buffer;/*数据缓冲区的位置*/ unsignedar*curp;/*指针,当前的指向*/ unsignedistemp;/*临时文件,指示器*/ shorttoken;/*用于有效性检查*/}FILE; 在缓冲文件系统中,每个被使用的文件都要在内存中开辟一 FILE类型的区,存放文件的有关信息
清华大学出版社 TSINGHUA UNIVERSITY PRESS §101c文件的有关概念 10.1.5文件指针 FILE类型的数组 FLEf[5]:义了一个结构体数组f,它有5个元素 可以用来存放5个文件的信息 文件型指针变量: FILE*fp;fp是一个指向FIL类型结构体的 指针变量。可以使fp指向某一个文件的结构体变量,从 而通过该结构体变量中的文件信息能够访问该文件。如果 有n个文件,一般应设n个指针变量,使它们分别指向n 个文件,以实现对文件的访问
§10.1 C文件的有关概念 10.1.5 文件指针 FILE类型的数组: FILE f[5];定义了一个结构体数组f,它有5个元素, 可以用来存放5个文件的信息。 文件型指针变量: FILE *fp;fp是一个指向FILE类型结构体的 指针变量。可以使fp指向某一个文件的结构体变量,从 而通过该结构体变量中的文件信息能够访问该文件。如果 有n个文件,一般应设n个指针变量,使它们分别指向n 个文件,以实现对文件的访问