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