模拟文件系统实验报告.doc

模拟文件系统实验报告.doc

ID:48590213

大小:998.00 KB

页数:17页

时间:2020-02-26

模拟文件系统实验报告.doc_第1页
模拟文件系统实验报告.doc_第2页
模拟文件系统实验报告.doc_第3页
模拟文件系统实验报告.doc_第4页
模拟文件系统实验报告.doc_第5页
资源描述:

《模拟文件系统实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.操作系统大型试验实验报告姓名:XX班级:软件工程110x学号:201126630xxx教育资料.一、名称操作系统大型试验。二、目的用C++编写出一个简单的模拟文件系统,实现目录的添加、删除、重命名,文件的添加、删除、重命名、文件和目录、文件的拷贝。三、要求开发工具:word,vcwin32api1.设计和实现一个简单的文件系统,要求包括目录、普通文件和文件的存储2.文件系统的目录结构采用类似Linux的树状结构;3.要求模拟的操作包括:a)目录的添加、删除、重命名;b)目录的显示(列表)c)文件的添加、

2、删除、重命名d)文件和目录的拷贝4.用户进入时显示可用命令列表;用户输入help时显示所有命令的帮助文档;输入某个命令+?时显示该条命令的使用说明5.用户输入exit时退出该系统6.实验实现基于windows平台;7.实验开发语言可以选用C/c++等四、设计1.主要思路说明本模拟系统通过一个大小固定的数组要代表物理盘块,假设共有1024块,新增目录占一块,新增文件占一块,文件中可输入内容,内容假设定义为5个字符占一块,超出则应新申请空间。模拟物理盘块的数组中,数组内容为-99代表改物理盘块内容为空,可使用

3、,其他数字均代表该物理盘块被占用,其中-3代表是占用文件的末结点,其他整数代表是文件内容的下一个寻址下标,另有一个string类型的数组来存储内容,模拟文件写入了对应下标的物理盘块中。设置了一个全局指针指向根结点,一个全局指针指向当前操作目录。搜索空白物理盘块时采用顺序搜索物理盘块数组。存储形式主要采用类似二叉树结构,如目录为根,目录下的第一个文件或目录存在根的子节点,目录下的其他文件或目录存在第一个文件或目录的兄弟节点,以此类推。本程序仅seperate()函数使用现成代码,此函数功能为将输入命令串分离

4、,仅仅起到美观作用,其余所有代码均为原创!2.申优功能:1)能实现动态增长,即当输入文件的内容大小大于分配的模拟物理盘块时系统能够自动寻找空物理盘块并分配,将超出的内容保存在新的物理盘块中,若超出模拟磁盘大小,则超出部分不保存且返回提示。2)能实现级联删除,即当删除目录(文件夹)时,目录下的所有内容也应当删除并正确释放物理盘块空间。3)能实现目录的复制,即复制目录时(文件夹)时,该目录下的所有文件和目录也应准确复制至目标目录中,并正确分配物理盘块空间。教育资料.3.主要函数和类的定义1)主要函数定义#de

5、fineshow_bnum20//显示物理盘块的块数#defineblock_size1024//物理盘块块数intblock[block_size];//假设有block_size块物理盘块stringcontent[block_size];//存放文件内容intMsize=5;//此处为模拟磁盘大小为输入5个字符fnode*root=newfnode("WP:",0,0);//设置根目录fnode*current_path=newfnode();//当前路径fnode*seek_flag=newfno

6、de();//作为查找标志fnode*cp_flag=newfnode();//作为复制的位置标志voidinitialize();//初始化intseekTarget(stringname);//搜索文件或目录intseek_log(stringname);//搜索目录voiddelete_node(stringname);//删除节点intfreeblock(fnode*);//释放物理盘块intseekfreeblock();//搜索可用物理盘块voidshow_current_path();//显

7、示当前路径voidadd_file(stringname,intt);//增加目录、文件voidshow_curpath_all();//显示当前目录下的所有文件voidrename_file(stringOname,stringNname);//重命名voidseperate();//分离命令voidcd();//进入目录voidadd_File();//增加文件功能入口voidadd_Log();//增加目录功能入口voiddelete_file();//删除文件或目录功能入口voidshow_mem

8、ory();//显示物理盘块占用情况voidre_name();//重命名功能入口voidhelp();//查看帮助voidshow_content();//查看文件内容voidwrite_file();//写文件voidClear_();//清屏voidExit();//退出voidcp();//复制功能入口voidcp_log(fnode*target,fnode*source);//复制目录voidcp_file(fno

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。