文件访问
文件访问
文件 c文件概述 文件:存储在外部介质上数据的集合,是操作系统 数据管理的单位,能永久保存数据 ★文件分类 ◆按文件的逻辑结构: ●记录文件:由具有一定结构的记录组成(定长和不定长) 流式文件:由一个个字符(字节)数据顺序组成 心按存储介质 ●普通文件:存储介质文件(磁盘、磁带等) ●设备文件:非存储介质(键盘、显示器、打印机等) 今按数据的组织形式: 文本文件:ASC文件,每个字节存放一个字符的ASC码 ●二进制文件:数据按其在内存中的存储形式原样存放
文件 C文件概述 – 文件:存储在外部介质上数据的集合,是操作系统 数据管理的单位,能永久保存数据。 文件分类 ❖按文件的逻辑结构: ⚫ 记录文件:由具有一定结构的记录组成(定长和不定长) ⚫ 流式文件:由一个个字符(字节)数据顺序组成 ❖按存储介质: ⚫ 普通文件:存储介质文件(磁盘、磁带等) ⚫ 设备文件:非存储介质(键盘、显示器、打印机等) ❖按数据的组织形式: ⚫ 文本文件: ASCII文件,每个字节存放一个字符的ASCII码 ⚫ 二进制文件:数据按其在内存中的存储形式原样存放
文本文件与二进制文件 文本文件特点 耗费存储量大、速度慢、便于对字符操作 如int型数10000 ASC形式 0011000100110000001100000011000000110000 0010011100010000 0010011100010000 内存存储形式) 二进制形式 二进制文件特点: 节约存储空间、速度快、便于存放中间结果
如 int 型数 10000 0010011100010000 内存存储形式 0010011100010000 二进制形式 0011000100110000001100000011000000110000 ASCII形式 文本文件特点: 耗费存储量大、速度慢、便于对字符操作 二进制文件特点: 节约存储空间、速度快、便于存放中间结果 文本文件与二进制文件
文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用 的文件开辟内存缓冲区 非缓冲文件系统:低级文件系统,由用户在程序中为 每个文件设定缓冲区 程序 输入文件缓冲区 指令区 缓冲文件系统: 磁盘文件 非缓冲文件系统:用户数据区 程序数据区 磁盘 缓冲区 输出文件缓冲区
– 文件处理方法 • 缓冲文件系统:高级文件系统,系统自动为正在使用 的文件开辟内存缓冲区 • 非缓冲文件系统:低级文件系统,由用户在程序中为 每个文件设定缓冲区 磁盘文件 输出文件缓冲区 输入文件缓冲区 程序数据区 a 缓冲文件系统: 缓冲区 指令区 程序 用户数据区 磁盘 非缓冲文件系统:
文件类型指针 文件结构体FLE 缓冲文件系统为每个正使用的文件在内存开辟文件信 息区 ·文件信息用系统定义的名为FLE的结构体描述 ·FILE定义在 stdio. h中 typedef struct short level/*缓冲区“满”或空的程度* unsigned flags;/*文件状态(如只读、读/写)标记*/ char fd;/文件描述符* unsigned char hold;/*如果没有缓冲区,则不读取字符*/ short bsize;/*缓冲区大小 unsigned char* buffer;!/*数据缓冲区的位置* unsigned char*curp;/*当前的指针指向*/ unsigned istemp;/*临时性的文件标记*/ short token;/*用于有效性检查的标记* FLE*p;∥定义指向结构体的指针fp
文件类型指针 – 文件结构体 FILE • 缓冲文件系统为每个正使用的文件在内存开辟文件信 息区 • 文件信息用系统定义的名为FILE的结构体描述 • FILE定义在stdio.h中 typedef struct { short level;/*缓冲区“满”或空的程度*/ unsigned flags; /*文件状态(如只读、读/写)标记*/ char fd; /*文件描述符*/ unsigned char hold; /*如果没有缓冲区,则不读取字符*/ short bsize; /*缓冲区大小*/ unsigned char *buffer; /*数据缓冲区的位置*/ unsigned char *curp; /*当前的指针指向*/ unsigned istemp; /*临时性的文件标记*/ short token; /*用于有效性检查的标记*/ }FILE *fp;//定义指向结构体的指针fp