网站大量收购闲置独家精品文档,联系QQ:2885784924

第十二章 文件2.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二章 文件2

没有FILE类型的结构体数据类型来描述文件信息,也没有相应的文件类型指针。它主要通过文件号对文件进行访问 直接依赖于操作系统的功能完成对文件的操作,故又称为低级输入输出系统或系统级输入输出系统 只能以块形式进行读写,不能读写单个字符、字符串和格式化数据。用于二进制文件的输入输出 文件读写缓冲区的设置必须由用户自己设定,不是由编译器自动设置 3. 两种文件系统的比较 #include stdio.h #include stdlib.h int main(int argc,char *argv[]) { FILE *fp; int ch; if (argc2) { printf(Give a filename to be operated,please.\n); return 0; } /*if (argc2)*/ if ((fp=fopen(argv[1],r))==NULL) { printf(fopen() failed!\n); exit(0); } /*if ((fp=fopen(…))==NULL)*/ while ((ch=fgetc(fp))!=EOF) putchar(ch); fclose(fp); return 0; } /*End of main()*/ 12.4 文件的随机读写模式 顺序读写只能按物理顺序进行读写。如果只读取中间某项数据或从指定位置开始读取,顺序读取是不方便的。 C语言文件系统提供了不按物理顺序而按任意指定位置进行读写的操作方式。只要移动当前读写位置指针curp,即可实现按指定位置进行读写,即随机读写。 12.5 非缓冲文件的读写方法** 没有文件信息结构体和指向文件类型的指针;读写缓冲区由应用程序设置;文件打开命令的返回值是一个整数;读写方式只能是块读写。 直接依赖于操作系统的输入输出功能(系统级输入输出),ANSI标准不再包含它。 非缓冲文件系统功能的参数和函数原型的声明包含在头文件io.h中。 数学与软件科学学院 C程序设计 文件概述 1 文件的打开与关闭 2 第十二章 文件 文件的顺序读写模式 3 文件的随机读写 4 非缓冲文件的读写方法 5 文件(File)是一组相关数据的有序集合。一般存储在外部介质上 文件的基本操作有打开、关闭和读写。通过它们可以创建、修改和读取各种文件 通常把输入输出设备也看作文件,如打印机和磁带文件等 12.1 文件概述 12.1.1 文件的分类 从用户的角度 普通文件:存储在外部介质上的数据集合 设备文件:与主机相连的外部设备 从文件数据的编码组织形式上 ASCII码文件:字符文件 二进制文件:值文件 从文件的实现方式上 缓冲文件:通过信息结构体读写 非缓冲文件:直接读写 12.1.2 缓冲文件系统和非缓冲文件系统 1. 缓冲文件系统 (1) 缓冲文件系统的操作逻辑结构 程序数据区 输入文件缓冲区 磁盘文件 (a) 缓冲文件系统中的输入缓冲区文件操作逻辑 程序数据区 输出文件缓冲区 磁盘文件 (b) 缓冲文件系统中的输出缓冲区文件操作逻辑 (2) 缓冲文件系统的文件信息区结构及指向文件的指针 对文件进行操作时,需要知道文件的当前读写位置、与该文件对应的内存缓冲区地址、缓冲区中未被处理的字符数和文件操作方式等信息。缓冲文件系统在内存中为每一个文件开辟了一个文件信息区,它们由系统定义的文件结构体数据类型FILE表示。FILE结构体数据类型的定义包含在stdio.h头文件中。 typedef struct { short level; /*缓冲区状态级别*/ unsigned flags; /*文件状态标记*/ char fd; /*文件描述符*/ unsigned char hold; /*Ungetc字符*/ short bsize; /*缓冲区大小*/ unsigned char *buffer; /*数据传输缓冲区*/ unsigned char *curp; /*当前活动指针*/ unsigned istemp; /*临时文件指示器*/ short token; /*有效性检查Token*/ } FILE; /*文件对象的信息描述结构体*/ 声明文件指针变量的格式: FILE *文件结构体指针变量名; 例如:FILE *fp1,*fp2,*fp3;声明了三个FILE型指针变量。 注意: 缓冲文件系统中,所有对文件的操作都必须通过指向文件结构体指针变量完成 只要将文件信息对应的结构体变量之起始地址值赋给文件指针变量,就可以达到操作和管理文件的目的

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档