- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模拟仿真UNIX文件管理系统
计算机系网络工程专业
操作系统课程设计
题 目:模拟仿真UNIX文件管理系统
班 级: 网络工程06103
姓 名: 唐锦涛 学 号: 06
同组人姓名:
起迄日期:2008.12.22—2008.12.31
课程设计地点: A513
指导教师: 贺玉才
评阅意见:
成绩评定:
评阅人: 日期: 完成日期:2008年12月31日
一、设计题目:模拟仿真UNIX的文件管理系统、题目描述(功能要求模拟UNIX操作系统下常用文件操作命令,整个系统不能直接在Windows平台下直接进行文件操作(那样实现几乎没有任何意义)。程序必须模拟UNIX系统下的文件结构,可以将整个操作过程以及数据保存在内存中,也可以自己选择自己实现起来比较容易的方式保存。在分析时,应该着重分析UNIX操作系统下的文件特性。在UNIX操作系统中,各个文件的属性以及它们之间的关系十分复杂,我们在设计程序的时候应当尽量地给文件增加多的属性,并对比windows系统下的文件属性,以便于更加真实地模拟UNIX系统中的文件存储,更好地理解windows系统下的文件存储与UNIX系统下的文件存储之间的区别。另外,对文件权限的分配在UNIX系统中有很好的用户体验,这一部分在windows操作系统中只有简单的实现。我们在设计程序时应尽量地模拟实现UNIX系统中对文件的权限分配。
程序必须包含的命令有:
Dir 列文件目录
Create 创建文件
CreateDir 创建目录
Del 删除文件
DelDir 删除目录
Open 打开文件
Close 关闭文件
用户登陆以及其他辅助命令有:
Help 系统帮助
Quit 退出登陆
Exit 退出程序
Delall 删除所有(只限管理员)
Cls 清除屏幕
Cmd 调用windows命令
三、设计思想说明 浏览文件 有 有 有 新建文件 有 有 无 管理自己创建的文件 有 有 无 管理其他用户的文件 有 无 无 2、文件存储结构体
原本考虑为文件和目录建立不同的结构体,后来想到那样设计既烦琐也没有必要。因而将文件和目录用同样的结构体表示,只是用不同的类型作了标识,这样可以更容易也更好地实现各个文件目录之间的关系。文件结构体所包含的成员有:文件类型、文件名、文件内容、属性、创建时间以及文件之间的关系,这一部分将在数据结构部分详细说明。
3、各种文件操作
用户权限分配好、文件存储结构体确定好之后,剩下的主要工作就是对文件的各种操作了,这是部分实现的难点不是简单地对文件的各种操作,而是在对文件进行各种操作之前对权限的判断。在这一部分,最容易实现的是对文件的浏览,因为每个用户都拥有这个权限,所以不需要控制。首先,我们初步地把对文件的操作函数列了出来:
创建文件/目录:create()/createdir()
删除文件/目录:del/deldir()
列出当前目录文件:dir()
转到目录:cd()
打开文件:open()
(注:由于创建文件/目录时所分配的资源相同,只是根据类型的不同去存储不同的文件类型,所以只需要一个函数,在调用是使用不同的参数即可。删除文件/目录部分亦如此,详细实现见源代码部分)
四、数据结构的说明???struct file
{
char file_name[20];
struct time creat_time;
char file_type;
char content[MAX_FILE_SIZE];
char state;
struct file *child;
struct file *brother;
struct file *parent;
};
其中file_name成员是一个字符串数组,保存文件名;creat_time成员是一个时间类型变量,保存文件的创建时间;file_type成员表示文件类型,有两种取值,DIRECTORY(目录)或REGULAR_FILE(常规);content成员是一个字符串数组,用来模拟文件的内容,初始值为空,用户可以创建写文件的进程向常规文件中添加内容,对于目录来讲,该成员为空且不能被赋值。state成员表示该文件的状态,包括OK、WR和NO三种状态,分别表示文件内容已
文档评论(0)