模拟unix文件系统

模拟unix文件系统

ID:25630435

大小:566.00 KB

页数:37页

时间:2018-11-21

模拟unix文件系统_第1页
模拟unix文件系统_第2页
模拟unix文件系统_第3页
模拟unix文件系统_第4页
模拟unix文件系统_第5页
资源描述:

《模拟unix文件系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、模拟unix文件系统一、基本信息完成人:牛娜(2006116242)报告日期:2008-3-24二、试验要求1.文件系统应具有的基本功能(1)多用户:usr1,usr2(2个用户)(2)多级目录:具有树形目录结构;(3)具有login(用户登录)和用户身份认证功能;(4)文件的创建:create(5)文件的打开:open(6)文件的读:read(7)文件的写:write(8)文件关闭:close(9)删除文件:delete(10)创建目录(建立子目录):mkdir(11)改变当前目录:cd(12)列出文件目录:dir(列目录时要列出文件名、物理地址和文件长度)(13)退出:lo

2、gout(14)有文件保护机制,如对文件设置访问权限等(如用户usr1不能对usr2创建的文件进行修改等)。2.选用程序设计语言:C或C++等。3.注意界面友好,有提示信息!三、设计思想说明课程设计所利用的空间为1M的内存(模拟外存文件系统存储空间),模拟外存文件系统存储空间。这1M内存分成512块,每块为512个字节,这512块就是文件系统总共的可用块数,文件系统的分配就是以块为单位来分配的,文件是以成组链接进行管理。四相关数据结构说明4.1用来存放用户所能输入的各种命令。structcommand{charcom[10];}cmd[17];4.2模拟的外存文件系统的存储空间

3、,有512块内存,n代表空闲块的个数,free[50]代表存放空闲盘块的地址,a代表模拟的盘块是否被占用。structblock{intn;intfree[50];inta;}memory[512]4.3存放文件的数据体,1M内存中structfile_block{charp[100];}fileBlock[];4.4超级块中的数据结构包含用来存放空闲盘块的个数,存放进入栈中的空闲块,下一组空闲盘块的地址。structblock_super{intn;intfree[50];intstack[50];}super_block;4.5文件的i节点信息,它包括文件类型,文件长度,用

4、户对该文件的操作权限,文件中的用户和同组用户和文件的物理地址。structnode{intfile_style;intfile_length;intfile_mode;intfile_userid;intfile_groupid;intfile_address[10];}i_node[512];4.6用来存放目录项的信息,fli_name表示文件名,i_num表示文件的节点号,dir_name表示文件所在的目录。structdir{charfile_name[10];inti_num;chardir_name[10];}root[512];4.7活动节点,存放节点的个数和节点号

5、structactive_node{structnodefile_node;inti_count;inti_number;}ActiveNode[30];4.8用户文件表,文件的位置structuser_file_table{intlocation[15];}UserFileTable[2];4.9系统文件表,文件名和共享技术structsystem_file_table{charfilename[10];intpointer;}SystemFileTable[30];五各模块的流程图5.1用户登录模块设置用户名和密码,用来验证登录用户的身份,用户登录成功前会初始化当前用户等一

6、系列的系统当前信息,用户的类型为普通用户,如果用户未能通过身份验证,提示用户登失败,可重新登陆两次。5.2创建文件功能只支持在当前目录创建文件,找到个未使用的文件块用来存放用户的文件信息,同时更文件索引i5.3文件打开功能只支持在当前目录进行操作,通过用户给定的文件名进行判断是否是文件,打印出文件的属性。5.4文件读取功能只支持在当前目录进行操作,只准在已创建的文件中进行写操作,并以D结束输入。5.5文件的写功能在已经创建好的文件中输入内容,以D结束输入。5.6文件关闭功能只支持在当前目录进行操作,通过用户给定的文件名在文件索引中搜索到文件的物理文件块ID,找到该文件元素后,将

7、文件当前状态置为关闭。5.7删除文件功能删除文件并不真正清理文件的物理存储内容,只是将文件的有效状态更改为无效5.8创建子目录功能只支持在当前目录创建文件,与创建文件有点类似。5.9改变当前目录功能5.10列出当前目录下的文件,流程图如下:四、程序清单#include"stdio.h"#include#include#include#defineG_Read8//同组用户对文件的读操作权限#defineG_Write4//同组用户对文

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

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

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