模拟UNIX文件系统.docVIP

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2013年秋季学期 操作系统原理 课程设计 题 目: 模拟UNIX文件系统 录摘 要 2 正 文 3 1、 3 2、 3 3、各模块伪码算法 4、 17 5、 18 设计总结 参考文献 致 谢 附录源程序 27 摘 要 本设计主要是针对模拟UNIX文件管理所做的,按照任务书的说明,在对针对UNIX文件系统设计中主要是通过C++对其功能进行描述,首先是对多用户的描述,对其用数组进行描述,在对其后的单用户登录login通过函数进行描述,这样提高了文件和数据的安全性可靠性,当输入的和用户名以及密码一致时进入系统进行操作,还有就是对文件的创建,打开,写,读,文件的删除,关闭,以及建立目录,改变当前目录,都是通过功能函数在其中实现其功能。 关键词:多用户登录,文件的访问权限,目录设计,UNIX文件系统 正 文 1.问题描述 该设计是针对UNIX系统所做的文件系统,其关键在于模拟,模拟文件操作的一些性质,及其应用。 利用Windows SDK(System Development Kit)提供的API(应用程序接口)编写程序实现文件系统的基本功能:多用户 :usr1,usr2,usr3,……, usr8 (1-8个用户)、多级目录:可有多级子目录、具有login (用户登录)、系统初始化(建文件卷、提供登录模块)、文件的创建: create、文件的打开:open、文件的读:read、文件的写:write、文件关闭:close、删除文件:delete 、创建目录(建立子目录):mkdir、改变当前目录:cd、列出文件目录:dir、退出:logout。 首先系统要完成初始化的任务,建立起整个系统,等待用户登录使用文件系统,用户登录模块,对用户的用户名和密码进行验证(允许用户用限次的尝试),如果用户登录成功,显示“本文件系统文件目录”,其中有八个用户,从user1到user8。我们可根据自己的需要选择用户。选择以后,显示对每个文件的操作,其中有打开,读,写,关闭,删除,新建,注销用户,退出系统等目录显示。可根据我们的具体需要选择我们所要的功能。 2.算法思想 模拟UNIX的文件系统的算法采用C++编写,其用两个结构体去表示多用户以及单用户的多文件的系统管理,然后对于文件的创建,打开,关闭,删除,创建子目录,改变当前目录等创建功能函数,最后在主函数里面再对磁盘进行初始化,开始运行程序功能,并采取UNIX的文件系统方法对其进行文件操作 3.各模块伪码算法 3.1创建结构体表示多用户以及单用户的多个文件 struct Files { string filename; ////文件名 int f_Owner; ////所有者(0~7) string r_time; ////文件最后修改时间 int f_size; ////文件大小 string cont; ////文件内容 Files *next; //// 指向下一个文件的指针 }; struct Folder { int Owner; //// 所有者(0~7) string foldername; //// 文件夹名字 string m_time; //// 文件夹创建时间 Folder *folders; //// 存放文件夹指针 Files *file; //// 存放文件指针 Folder *fparent; //// 指向路径父节点的指针 Folder *next; //// 指向同一层下一文件夹的指针 }; 3.2时间函数用于表示文件的创建时间 char* Time() { time_t tm; tm = time(0); char *t; t = ctime(tm); return t; } 3.3创建目录 void Mkdir(Folder* Target, string Name, int Unum) { Folder *pd = Target-folders; while(pd != NULL) { if(pd-foldername == Name) {

文档评论(0)

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

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

1亿VIP精品文档

相关文档