操作系统实习报告(磁盘文件操作).docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大学 操作系统课程综合实践 题目:  磁盘文件操作 班级:        姓名:        学号:        指导教师:       2011年 12 月 23日 磁盘文件操作 摘要: 为了正确地实现文件的存取,文件系统设计了一组与存取文件有关的功能模块,用户可以用“访问指令”调用这些功能模块,以实现文件的存取要求。我们把文件系统设计的这一组功能模块称为“文件操作“,实验就是要模拟实现一些文件操作。文件操作不是独立的,它和文件系统的其他部分密切相关,若要实现文件操作就离不开文件的目录结构、文件的组织结构和磁盘空间的管理。因此,这个实习虽然是文件操作的模拟实现,但还是必须模拟一部分文件的组织结构、目录结构和磁盘空间管理的实现。 关键字:磁盘、文件、目录、分配表。 一、实验内容: 设计一个简单的文件系统,用文件模拟磁盘,用数组模拟缓冲区,要求实现; 支持多级目录结构,支持文件的绝对路径; 文件的逻辑结构采用流式结构,物理结构采用链接结构中的显示链接方式; 采用文件分配表; 实现的命令包括建立目录、列目录、删除空目录、建立文件、删除文件、显示文件内容、打开文件、读文件、写文件(追加方式)、关闭文件、改变文件属性。 最后编写主函数对所做工作进行测试。 二、实验目的: 文件的操作。 文件的逻辑结构和物理结构 磁盘空间的管理 磁盘目录结构 三、实验环境: Windows XP、VC++ 四、程序运行结果(详图): 程序运行的主界面:用户运行命令7-建立目录 用户运行命令1-建立文件: 显示目录内容: 打开文件: 写文件: 关闭文件: 再次显示目录内容: 以上为程序的运行的部分截图。 五、程序清单: #define false 0 #define true 1 #include stdio.h //#include fcntl #includestring.h //#param warning(disable:4996) FILE*x1,*x2; typedef struct { char name[3]; /*文件或目录名*/ char type[2]; /*文件类型名*/ char attribute; /*属性*/ char address; /*文件或目录的起始盘块号*/ char length; /*文件长度,以盘块为单位*/ }content; /*目录结构*/ #define n 5 /*模拟实验中系统允许打开文件的最大数量*/ typedef struct { int dnum; /*磁盘盘块号*/ int bnum; /*盘块内第几项*/ }pointer; /*已打开文件表中读写指针的结构*/ typedef struct { char name[20]; /*文件绝对路径名*/ char attribute;/*文件的属性,用1个字节表示,所以用了char类型*/ int number; /*文件起始盘块号*/ int length; /*文件长度,文件占用的字节数*/ int flag; /*操作类型,用0表示以读操作方式开文件,用1表示写操作方式打开文件*/ pointer read; /*读文件的位置,文件刚打开时dnum为文件起始盘块号,bnum为0*/ pointer write; /*写文件的位置,文件建立时dnum为文件起始盘块号,bnum为0,打开时为文件末尾*/ }OFILE; /*已打开文件表项类型定义*/ struct { OFILE file[n]; /*已打开文件表*/ int length; /*已打开文件表中登记的文件数量*/ }openfile; /*已打开文件表定义*/ char buffer1[64];/*模拟缓冲1*/ content buffer2[8];/*模拟缓冲2*/ FILE *fc; /*模拟磁盘的文件指针*/ void copen(OFILE *x1,OFILE *x2) //OFILE *x1,*x2; { strcpy(x1-name,x2-name); x1-attribute=x2-attribute; x1-number=x2-number; x1-length=x2-length; x1-flag=x2-flag; x1-read.dnum=x2-read.dnum; x1-read.bnum=x2-read.bnum; x1-write.dnum=x2-write.dnum; x1-write.bnum=x2-write.bnum; } int sopen(char *name) /*在已打开文件表中查找文件name*/

文档评论(0)

annylsq + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档