多用户多级目录文件系统的实现-操作系统 第6页
memset(display, '\0', 1000);
//查找显示内容
for (unsigned i = 0; i < FS.FI.FICount; i++)
{
if (!strcmp(FS.FI.FIStart[i].ParentName, CS.CurrParent->FileName)
&& FS.FI.FIStart[i].FileLevel == CS.FileLevel
&& FS.FI.FIStart[i].effect == 1)
{
strcat(display, FS.FI.FIStart[i].FileName);
strcat(display, "\t\t");
}
}
printf("%s\n", display);
printf("[%s@localhost %s]$", CS.CurrentUser.UserName, CS.CurrentPath);
}
4.1.12退出:logout
用户请求退出时,跳出命令处理,提示用户退出系统,转入到登录模块等待下一个用户的登录。
4.2算法流程图
算法流程图
5.使用说明书
5.1登录
内置设了user1到user8八个普通用户和1个超级用户root,密码与用户名相同。登录时如果输入用户名和密码错误次数多于8次,则退出程序。输入密码时采用了一种不回显的方式,虽然屏幕上没有显示输入的密码,其实密码已经输入了系统,这样做可以提高系统的安全性。现在用超级用户root登录后出现如下界面:/表示根目录,$后面可以输入命令。
图5.1
5.2新建目录和列出文件目录
由于第一次启动系统,故根目录下没有任何东西,这点可以通过输入命令dir来验证,故为了演示,先建立一个目录hhh,在$后输入命令,mkdir hhh,按回车,然后再用命令dir查看根目录下信息,此时有一个文件hhh,如下:
图5.2
5.3改变当前目录
系统启动后,默认路径为根目录/,此时若要进入刚才新建的目录hhh,只需输入命令cd hhh,结果如下:路径已由原来的/变成了/hhh/
图5.3
5.4文件的创建
在目录hhh下新建一个名为h的文件,在$后输入命令create h,再用命令dir列出文件: 图5.4
5.5文件的打开
用命令open h打开文件h:
图5.5
5.6文件的写
先输入命令write h,再输入文字:Idle brain is the devil’s workshop.
图5.6
5.7文件的读
执行命令read h可以读取文件h的内容:
图5.7
5.8文件的关闭
执行命令close h关闭文件h:
图5.8
5.9文件的删除
执行命令delete h删除文件h:
图5.9
5.10返回根目录
执行命令cd ..,路径由/hhh变成了/
图5.10
5.11退出
执行命令logout,退出系统,可以以其他用户名进行登录
6.心得体会
在设计的过程中遇到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在通过运用丰富的网络资源,终于游逆而解。
如果时间再多点,我相信可以把课程设计做得更好,本来是打算引入索引结点,已经花了两天的时间搞清了索引结点的思路,也把基本的算法写了出来,可是时间不允许我继续做下去,因为时间太少了,只有一个星期的时间可以做操作系统的课程设计,再加上两科考试和做其他事情,为了能在老师规定的时间都可能无法完成,最后没有办法,只能放弃引入索引结点。
参考文献
[1] 计算机操作系统(修订版), 汤子瀛等 ,西安电子科技大学出版社, 2006
[2] Linux内核完全剖析,赵炯,机械工业出版社,2006
[3] 操作系统课程设计,罗宇 褚瑞等,机械工业出版社,2005
[4] 操作系统实验指导-基于Linux内核,徐虹等,清华大学出版社,2004