操作系统课程设计报告 虚拟文件系统的实现

上传人:1666****666 文档编号:36848599 上传时间:2021-11-01 格式:DOC 页数:46 大小:417.17KB
收藏 版权申诉 举报 下载
操作系统课程设计报告 虚拟文件系统的实现_第1页
第1页 / 共46页
操作系统课程设计报告 虚拟文件系统的实现_第2页
第2页 / 共46页
操作系统课程设计报告 虚拟文件系统的实现_第3页
第3页 / 共46页
资源描述:

《操作系统课程设计报告 虚拟文件系统的实现》由会员分享,可在线阅读,更多相关《操作系统课程设计报告 虚拟文件系统的实现(46页珍藏版)》请在装配图网上搜索。

1、武汉工程大学 计算机科学与工程学院综合设计报告设计名称: 操作系统综合设计 设计题目: 虚拟文件系统的实现 学生学号: 专业班级: 计工02 学生姓名: 学生成绩: 指导教师(职称): 蔡琼(副教授) 课题工作时间: 12年2月13日 至 12年2 月24日 说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。4、所有学生必须参加综合设

2、计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩小组成员应由2人及以上教师组成。5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。成绩评定表学生姓名: 学号: 班级: 09计算机2班 类别合计分值各项分值评分标准实际得分合计得分备注平时表现1010按时参加综合设计,无旷课、迟到、早退、违反实验室纪律等情况。完成情况3020按设计任务书的

3、要求完成了全部任务,能完整演示其设计内容,符合要求。10能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。报告质量3510报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。5课题背景介绍清楚,综述分析充分。5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。5符号统一;图表完备、符合规范要求。5能对整个设计过程进行全面的总结,得出有价值的结论或结果。5参考文献数量在3篇以上,格式符合要求,在正文中正确引用。答辩情况2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时

4、间内能准确、完整、流利地回答教师所提出的问题。总评成绩: 分 补充说明: 指导教师: 蔡琼 (签字)日 期: 2012 年 2 月 24 日答辩记录表学生姓名: 学号: 班级: 09计算机2班 答辩地点: L403号机房 答辩内容记录:答辩成绩合计分值各项分值评分标准实际得分合计得分备注2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。答辩小组成员(签字): 2012 年 2 月 24 日指导教师评语指导教师: 蔡琼 (签字)日 期: 2012 年 2 月 24 日一、综合设计目的、条件、任务和内容要

5、求:操作系统在计算机科学中是一门核心专业基础课,涉及较多硬件和软件知识。在计算机软、硬件课程的设置上,它起着承上启下的作用。其特点是概念多、较抽象、涉及的知识面广。操作系统综合设计是计算机科学与技术专业学生的一门实践课程,是学习完操作系统课程后的课程设计,本课程的教学目的是,通过学习,使学生了解计算机操作系统的发展特点;理解操作系统的基本概念、组成和各部分的功能;掌握计算机操作系统设计的基本原理和方法;理解常见操作系统的结构原理并能熟练使用。虚拟文件系统的实现课题,要求学生了解文件类型及文件系统模型,理解文件的逻辑结构类型及特点,理解文件外存的分配方式,掌握文件的目录管理及存储空间管理,理解文

6、件的安全性和数据一致性。培养学生的抽象思维能力、逻辑推理能力和形式化思维方法,增强分析问题和解决问题的能力。设计任务和内容要求:在Windows或者Linux下设计一个二级(或者树型)结构文件系统,要求至少实现以下功能:login 用户登录、dir 列出文件目录、create 创建文件、del 删除文件、open 打开文件、close 关闭文件、read 读文件、write 写文件、cd 进入子目录、rd 删除子目录、md 创建子目录等。设计提示:实现虚拟文件系统的一般思路是调用系统的文件创建(如c中的fopen函数的w方式即可)一个新文件,将此文件作为虚拟磁盘,在完成本设计要求的内容时,要求

7、所生成的文件目录以及文件等内容都是存储在此磁盘中。 指导教师签字: 蔡 琼 2012 年 1 月 8 日二、进度安排:第1周(2.13-2.14) : 学生熟悉课题的任务和要求,查阅相关文献和资料,并做好编码准备第1周 (2.15-2.17) :程序编码、调试第2周 (2.20-2.22) :程序编码、调试和测试,书写报告第2周 (2.23-2.24): 答辩、检查、验收、递交设计报告三、应收集资料及主要参考文献:应收集的资料:面向对象程序设计思想和方法高级程序设计语言参考手册操作系统、软件工程方面参考书籍主要参考文献:(1) 李小林,张俊 .程序设计基础Z.北京:中国铁道出版社,2008.(

8、2) 汤小丹等.计算机操作系统Z.西安:西安电子科技大学出版社,2007.(3) 严蔚敏,吴伟民.数据结构Z.北京:清华大学出版社,2007.四、综合设计摘要:操作系统在计算机科学中是一门核心专业基础课,涉及较多硬件和软件知识。在计算机软、硬件课程的设置上,它起着承上启下的作用。其特点是概念多、较抽象、涉及的知识面广。操作系统综合设计是计算机科学与技术专业学生的一门实践课程,是学习完操作系统课程后的课程设计,本课程的教学目的是,通过学习,使学生了解计算机操作系统的发展特点;理解操作系统的基本概念、组成和各部分的功能;掌握计算机操作系统设计的基本原理和方法;理解常见操作系统的结构原理并能熟练使用

9、。本此课程设计的课题是设计一二级结构文件系统,要求学生了解文件类型及文件系统模型,理解文件的逻辑结构类型及特点,理解文件外存的分配方式,掌握文件的目录管理及存储空间管理,理解文件的安全性和数据一致性。培养学生的抽象思维能力、逻辑推理能力和形式化思维方法,增强分析问题和解决问题的能力。关键词:操作系统;虚拟文件;二级结构5、 综合设计Abstract:The operating system in computer science is a core fundamental course, involves more hardware and software knowledge. In com

10、puter software and hardware of the course setting, it plays the role of the link. Its characteristic is more, more abstract concept, involving a wider range of knowledge.The operating system is integrated design of computer science and technology major students a practical courses, is after studying

11、 the operating system of the course design curriculum, the teaching purpose of this course is, through the study, make students understand the development of the computer operating system characteristics; Understanding the basic concept of the operating system, composition and the functions of the p

12、arts of the; Good computer operating system the basic principle of design and the method; Understand common operating system structure theory and be familiar with.The course design of the subject is to design the structure of 12 file system, students are required to understand file type and file sys

13、tem model, understand the logic structure type and file characteristics, understand documents allocation of CRT, master file directory management and storage space management, understand the security of documents and data consistency. The cultivation of the students ability to think abstractly, logi

14、cal reasoning ability and formal thinking method, strengthen the ability to analyze and solve problems.Keywords: operating system; Virtual file; The secondary structure武汉工程大学计算机科学与工程学院 综合设计报告目 录摘 要 . 2Abstract . 2第一章 课题背景.31.1 课题简介 .3 1.1.1 课题背景 .3 1.1.2 课题目的 .3 1.1.3 要求及内容 .31.2 原理与内容 .3 1.2.1 理论依据

15、 .3 1.2.2 课题内容 .3第二章设计简介及设计方案论述 .42.1 设计简介 .4 2.2 设计方案论述 .4 2.3 概要设计 .4 2.3.1 数据结构 .4 2.3.2 主要操作函数 .5第三章详细设计 .63.1 系统分析 .6 3.2 文件基本操作 .6 3.3 算法流程图 .7第四章设计结果及分析. 84.1 文件系统功能 .84.2 系统测试 .8 4.3 运行结果分析 .10 总 结 .11 致 谢 .12 参考文献 .13附录 主要程序代码 .14 摘 要操作系统在计算机科学中是一门核心专业基础课,涉及较多硬件和软件知识。在计算机软、硬件课程的设置上,它起着承上启下的

16、作用。其特点是概念多、较抽象、涉及的知识面广。操作系统综合设计是计算机科学与技术专业学生的一门实践课程,是学习完操作系统课程后的课程设计,本课程的教学目的是,通过学习,使学生了解计算机操作系统的发展特点;理解操作系统的基本概念、组成和各部分的功能;掌握计算机操作系统设计的基本原理和方法;理解常见操作系统的结构原理并能熟练使用。本此课程设计的课题是设计一二级结构文件系统,要求学生了解文件类型及文件系统模型,理解文件的逻辑结构类型及特点,理解文件外存的分配方式,掌握文件的目录管理及存储空间管理,理解文件的安全性和数据一致性。培养学生的抽象思维能力、逻辑推理能力和形式化思维方法,增强分析问题和解决问

17、题的能力。关键词:操作系统;虚拟文件;二级结构AbstractThe operating system in computer science is a core fundamental course, involves more hardware and software knowledge. In computer software and hardware of the course setting, it plays the role of the link. Its characteristic is more, more abstract concept, involving a

18、wider range of knowledge.The operating system is integrated design of computer science and technology major students a practical courses, is after studying the operating system of the course design curriculum, the teaching purpose of this course is, through the study, make students understand the de

19、velopment of the computer operating system characteristics; Understanding the basic concept of the operating system, composition and the functions of the parts of the; Good computer operating system the basic principle of design and the method; Understand common operating system structure theory and

20、 be familiar with.The course design of the subject is to design the structure of 12 file system, students are required to understand file type and file system model, understand the logic structure type and file characteristics, understand documents allocation of CRT, master file directory management

21、 and storage space management, understand the security of documents and data consistency. The cultivation of the students ability to think abstractly, logical reasoning ability and formal thinking method, strengthen the ability to analyze and solve problems.Keywords:operating system; Virtual file; T

22、he secondary structure第一章 课题背景1.1 课题简介1.1.1 课题背景操作系统在计算机科学中是一门核心专业基础课,涉及较多硬件和软件知识。在计算机软、硬件课程的设置上,它起着承上启下的作用。其特点是概念多、较抽象、涉及的知识面广。1.1.2 课题目的通过学习,使学生了解计算机操作系统的发展特点;理解操作系统的基本概念、组成和各部分的功能;掌握计算机操作系统设计的基本原理和方法;理解常见操作系统的结构原理并能熟练使用。1.1.3 要求及意义了解文件类型及文件系统模型,理解文件的逻辑结构类型及特点,理解文件外存的分配方式,掌握文件的目录管理及存储空间管理,理解文件的安全性

23、和数据一致性。培养学生的抽象思维能力、逻辑推理能力和形式化思维方法,增强分析问题和解决问题的能力。1.2 原理与内容1.2.1 理论依据 文件系统是Linux操作系统的重要组成部分,Linux文件具有强大的功能。文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。1.2.2 课题内容在Windows或者Linux下设计一个二级(或者树型)结构文件系统,要求至少实现以下功能:login 用户登录、dir 列出文件目录、create 创建文件、del 删除文件、open 打开文件、clo

24、se 关闭文件、read 读文件、write 写文件、cd 进入子目录、rd 删除子目录、md 创建子目录等。第二章 设计简介及设计方案论述2.1 设计简介本系统是模拟实现多用户多目录的文件系统,在系统出现登录后 ,输入用户与口令,在用户登录系统后,可建立文件卷,将用户输入的文件保存在指定的文件中。系统的命令与其命令的具体实现,此模拟系统共提供了上述命令,并根据命令的含义与要求,用C+编程来完成所有具体操作。该系统可以模拟完成用户的登陆和验证,列出文件和目录,新建目录,改变目录,创立和编写文件,删除文件和退出系统等功能2.2 设计方案论述 本文件系统采用两级目录,其中第一级对应于用户账号,第二

25、级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。 首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2并以编号作为物理地址,在目录中进行登记。2.3 概要设计2.3.1 数据结构struct fatitem /* size 8*/ int item; /*存放文件下一个磁盘的指针*/ char em_disk; /*磁盘块是否空闲标志位0 空闲*/ ; struct direct /*-文件

26、控制快信息-*/ struct FCB char name9; /*文件/目录名8位*/ char property; /*属性1位目录0位普通文件*/ int size; /*文件/目录字节数、盘块数)*/ int firstdisk; /*文件/目录起始盘块号*/ int next; /*子目录起始盘块号*/ int sign; /*1是根目录0不是根目录*/ directitemMSD+2; ; struct opentable struct openttableitem char name9; /*文件名*/ int firstdisk; /*起始盘块号*/ int size; /*文

27、件的大小*/ openitemMOFN; int cur_size; /*当前打文件的数目*/ ; 2.3.2 主要操作函数int create(char *name); int open(char *name); int close(char *name); int write(int fd,char *buf,int len); int read(int fd,char *buf); int del(char *name); int mkdir(char *name); int rmdir(char *name); void dir(); int cd(char *name); void

28、print(); void show(); 第3章 详细设计3.1 系统分析 本次设计的“模拟二级文件管理系统”利用的是二级目录管理方式,分别由用户文件目录FAT、主文件目录Root构成。其中FAT由用户的所有文件块组成,在FAT中每个用户目录文件占用一个目录项,其中目录项中包含用户名、用户密码以及指向用户文件目录文件链表的指针。3.2 文件基本操作 创建文件:创建一个新文件时,系统首先要为新文件申请必要的外存空间,并在FAT中为文件分配一个目录项。目录项中应记录新建文件的文件名、文件总容量、当前已经使用的容量、文件属性、文件在磁盘中的起始位置。 删除文件:当已不在需要某文件时,可将它从文件系

29、统中删除。在删除时,首先在FAT的文件链表中找到与该文件对应的文件结点,然后确认文件是否处于关闭状态,若以上条件都满足,则系统就可以把结点从文件链表中删除,然后回收改结点对应的磁盘空间。 打开文件:只有处于打开状态的文件才能被读取、写入、重复关闭且不能被删除。 关闭文件:只有处于关闭状态的文件才能被删除,且不能被重复关闭。 列文件目录:用户只能获取自己建立的文件或其他用户共享的文件的列表,并可以查看所用户建立的文件列表。 写文件:用户可以把相关数据写入到用户自定义的文件中(磁盘上);待写文件必须处于打开状态,且不能是其他用户共享的文件。读文件:用户可以把文件中存储的数据读取出来;待读文件必须处

30、于打开状态;用户既可以读取自己建立的文件,也可以读取其他用户共享的文件。建子目录:输入目录名,若存在于该文件名相同的目录,这创建失败;若无,则查找空闲的磁盘,将该磁盘置为分配状态,填写目录项,分配地址后,子目录创建成功。删除目录:输入名字,查找是否存在该文件或目录,若为文件,则不能删除;若存在,找到起始盘块号,并将其释放,修改目录项,删除成功。3.3 算法流程图 开始初始化磁盘有无该用户?登录/注册?注册新用户注册登录分析命令Y显示:无此用户N创建文件打开文件关闭文件读文件写文件列文件目录删除文件注销用户退出系统end提示错误指令成功执行?YN框图1:程序整体框架第四章 设计结果及分析4.1

31、文件系统功能 系统具有如下基本功能:login 用户登录dir 列目录create 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件cd 进出目录 mkdir 创建子目录rmdir 删除子目录4.2 系统测试(1)login 用户登录(2)mkdir创建子目录(3)cd进出目录(4)create创建文件(5)close关闭文件(6)open打开文件(7)write写文件(8) read读文件(9) dir列目录(10)delete删除文件(11)rmdir删除子目录4.3 运行结果分析从上述运行过程可以看出,用户登录系统后,界面将显示文件或

32、目录的基本操作,然后根据相应操作,完成系统的基本要求。本次程序的运行结果与预期结果最终达到了一致。自运行阶段,虽然每次都能得到运行结果,但是操作界面有时不是很完美,于是通过修改程序代码,不断执行程序,进行完善,直到得出满意的操作界面为止。在该过程中,验证了本次课程设计所要求的基本功能,虽然有些操作不是很完善,但大体上都能实现。其中最令我不满意的是dir功能。该功能只是列出目录名,不能显示目录其他信息,是本次课程设计最大败笔。总 结课程设计是对我们平时学习的一种考察,我们要正确地对待。不断地锻炼自己动手动脑的能力、把知识赋予实践就是我们学习的目标!既然学校给我们这么好的机会,让我们自己在实验室作

33、操作,我们应该好好抓住机会,把我们平时学习的东西用自己的作品展现出来。这次,我做的是模拟linux二级文件系统设计的课程主题,这给了我充分锻炼的机会。我会用自己学到的东西的设计出一副好的作品。 Linux系统中的文件系统是人们最感兴趣的,也是最成功的一部分。它既有很强的功能,又非常灵活,而且在具体的实现技术上也有许多独到之处,致使后来有不少操作系统的设计者都仿效了Liux操作系统中的文件系统去开发自己的文件系统。而对于我来说,这种最灵活的知识却是最难掌握的。也因为对其基本知识掌握的不好,在这一次的设计过程中遇到很多的困难,特别是物理盘块和逻辑文件之间的对应。在经过与同学进行沟通和交流并反复的测

34、试之后,才明白了设计的函数,而且完善了部分函数的主要功能。通过两星期的操作系统课程设计实习,让我对Linux文件系统有了深层次的了解和掌握,也通过了自己的能力体会到了编程的乐趣。最重要的是学会了关于设计分析和以前C+语言学习过程中没有及时巩固的知识,对C+程序设计又有了更进一步的认识,对一些细节的结构体语句有了更深刻的理解。所以这是一次很难得的实践机会,让我真正用心编程,学到了课本以外更深刻更重要的实践经验。非常感谢老师提供这次机会,在这个课程设计过程中我受益匪浅,希望以后在这样的锻炼中不断成长,提高自己各方面的能力我相信通过我以后很加刻苦的学习,我会更加热爱我的专业课程。致 谢在本次课程设计

35、的整个过程中,要特别感谢自始至终给我提供帮助和指导的刘黎志老师,是他耐心的指导才使得本次设计得以顺得完成,同时,也要感谢其他同学的无私帮助,在此还要特别感谢为我们提供良好上机环境的学校。如果没有以上老师,同学和学校的帮助和支持,本次设计实难完成。再次感谢老师的精心辅导和同学的相互帮助,使我们顺利完成此次设计以及为学习以后的科目打下良好的基础。参考文献 (1)李小林,张俊 .程序设计基础Z.北京:中国铁道出版社,2008. (2)汤小丹等.计算机操作系统Z.西安:西安电子科技大学出版社,2007. (3)严蔚敏,吴伟民.数据结构Z.北京:清华大学出版社,2007.附录主要代码源程序:#inclu

36、de #include #include #define MEM_D_SIZE 1024*1024 /总磁盘空间为M#define DISKSIZE 1024/磁盘块的大小K#define DISK_NUM 1024/磁盘块数目K#define FATSIZE DISK_NUM*sizeof(struct fatitem)/FAT表大小#define ROOT_DISK_NO FATSIZE/DISKSIZE+1/根目录起始盘块号#define ROOT_DISK_SIZE sizeof(struct direct)/根目录大小#define DIR_MAXSIZE 1024/路径最大长度为K

37、B#define MSD 5/最大子目录数#define MOFN 5/最大文件深度为#define MAX_WRITE 1024*128/最大写入文字长度KB struct fatitem /* size 8*/ int item; /*存放文件下一个磁盘的指针*/ char em_disk; /*磁盘块是否空闲标志位0 空闲*/ ; struct direct /*-文件控制快信息-*/ struct FCB char name9; /*文件/目录名8位*/ char property; /*属性1位目录0位普通文件*/ int size; /*文件/目录字节数、盘块数)*/ int fi

38、rstdisk; /*文件/目录起始盘块号*/ int next; /*子目录起始盘块号*/ int sign; /*1是根目录0不是根目录*/ directitemMSD+2; ; struct opentable struct openttableitem char name9; /*文件名*/ int firstdisk; /*起始盘块号*/ int size; /*文件的大小*/ openitemMOFN; int cur_size; /*当前打文件的数目*/ ; struct fatitem *fat; /*FAT表*/ struct direct *root; /*根目录*/ st

39、ruct direct *cur_dir; /*当前目录*/ struct opentable u_opentable; /*文件打开表*/ int fd=-1; /*文件打开表的序号*/ char *bufferdir; /*记录当前路径的名称*/ char *fdisk; /*虚拟磁盘起始地址*/ void initfile(); void format(); void enter(); void halt(); int create(char *name); int open(char *name); int close(char *name); int write(int fd,cha

40、r *buf,int len); int read(int fd,char *buf); int del(char *name); int mkdir(char *name); int rmdir(char *name); void dir(); int cd(char *name); void print(); void show(); void initfile() fdisk = (char *)malloc(MEM_D_SIZE*sizeof(char); /*申请1M空间*/ format(); void format() int i; FILE *fp; fat = (struct

41、 fatitem *)(fdisk+DISKSIZE); /*计算FAT表地址,引导区向后偏移1k)*/ /*-初始化FAT表-*/ fat0.item=-1; /*引导块*/ fat0.em_disk=1; for(i=1;iROOT_DISK_NO-1;i+) /*存放FAT表的磁盘块号*/ fati.item=i+1; fati.em_disk=1; fatROOT_DISK_NO.item=-1; /*存放根目录的磁盘块号*/ fatROOT_DISK_NO.em_disk=1; for(i=ROOT_DISK_NO+1;idirectitem0.sign = 1; root-dire

42、ctitem0.firstdisk = ROOT_DISK_NO; strcpy(root-directitem0.name,.); root-directitem0.next = root-directitem0.firstdisk; root-directitem0.property = 1; root-directitem0.size = ROOT_DISK_SIZE; /*-指向上一级目录的目录项-*/ root-directitem1.sign = 1; root-directitem1.firstdisk = ROOT_DISK_NO; strcpy(root-directitem

43、1.name,.); root-directitem1.next = root-directitem0.firstdisk; root-directitem1.property = 1; root-directitem1.size = ROOT_DISK_SIZE; if(fp = fopen(disk.dat,wb)=NULL) printf(Error:n Cannot open file n); return; for(i=2;idirectitemi.sign = 0; root-directitemi.firstdisk = -1; strcpy(root-directitemi.n

44、ame,); root-directitemi.next = -1; root-directitemi.property = 0; root-directitemi.size = 0; if(fp = fopen(disk.dat,wb)=NULL) printf(Error:n Cannot open file n); return; if(fwrite(fdisk,MEM_D_SIZE,1,fp)!=1) /*把虚拟磁盘空间保存到磁盘文件中*/ printf(Error:n File write error! n); fclose(fp); void enter() FILE *fp; i

45、nt i; fdisk = (char *)malloc(MEM_D_SIZE*sizeof(char); /*申请1M空间*/ if(fp=fopen(disk.dat,rb)=NULL) printf(Error:nCannot open filen); return; if(!fread(fdisk,MEM_D_SIZE,1,fp) /*把磁盘文件disk.dat 读入虚拟磁盘空间(内存)*/ printf(Error:nCannot read filen); exit(0); fat = (struct fatitem *)(fdisk+DISKSIZE); /*找到FAT表地址*/

46、root = (struct direct *)(fdisk+DISKSIZE+FATSIZE);/*找到根目录地址*/ fclose(fp); /*-初始化用户打开表-*/ for(i=0;i8) /*文件名大于8位*/ return(-1); for(j=2;jdirectitemj.name,name) break; if(jMSD+2) /*文件已经存在*/ return(-4); for(i=2;idirectitemi.firstdisk=-1) break; if(i=MSD+2) /*无空目录项*/ return(-2); if(u_opentable.cur_size=MOF

47、N) /*打开文件太多*/ return(-3); for(j=ROOT_DISK_NO+1;j=DISK_NUM) return(-5); fatj.em_disk = 1; /*将空闲块置为已经分配*/ /*-填写目录项-*/ strcpy(cur_dir-directitemi.name,name); cur_dir-directitemi.firstdisk = j; cur_dir-directitemi.size = 0; cur_dir-directitemi.next = j; cur_dir-directitemi.property = 0; /*-*/ fd = open(name); return 0; int open(char *name) int i, j; for(i=2;idirectitemi.name,name) break; if(i=MSD+2) return(-1); /*-是文件还是目录-*/ if(cur_dir-directitemi.property=1)return(-4); /*-文件是否打开-*/ for(j=0;jMOFN;j+) if(!strcmp(u_opentable.openitemj.name,name) break; if(jMO

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!