- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模拟UNIX文件系统.doc
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
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)
{
cout子目录 Name 已经存在!endl;
retu
您可能关注的文档
最近下载
- 公共经济学课件.pptx VIP
- 危险性较大分部分项工程监理细则(广东).pdf VIP
- 柯美C450数码复印机故障代码及维修模式.pdf VIP
- 新目标(第二版)视听说B3U3 测试试卷答案.pdf VIP
- 高中心理健康“生涯规划”第二课时《生涯变局——“我”的生涯故事》 教学设计.docx VIP
- 新课标水平三体育教案合集.pdf VIP
- 高中心理健康“生涯规划”第二课时《生涯变局——“我”的生涯故事》 课件.pptx VIP
- 企业职工伤亡事故分类.docx VIP
- 2025年临床检验科常规检验操作规范考核试题及答案解析.docx VIP
- 北京景山四年级上册数学专项复习8:应用题专练2.docx VIP
文档评论(0)