操作系统大型试验(6)

2021-04-05 04:57

操作系统 模拟linux文件管理系统

7. dir.h:

定义两个底层函数

1.bool havesame(char *dirname,INODE inode,int &i,int &index2)

判断对象inode指向的目录文件盘块中有无该名(dirname)的目录项存在着,有返回1无返回0。同时,有该目录项的话,则按引用调用的i为待删子目录目录项下标 index2为目录项中的待删子目录的结点号

2.bool find(char *string)

根据路径找到指定文件或目录<路径至少有一个 / 以root开头,不以 / 结尾>。需要注意的是,使用此函数时当前路径跟着改掉了,所以使用前必须保存当前路径。万一找不到目标的话,可以还原为当前路径。

定义了有关目录操作的四个功能函数,

1.void mkdir(char *dirname)

当前目录下创建目录(规定目录文件只占一个盘块。为了降低难度,已设定目录文件只占一个盘块。

2.void rmdir(char *dirname,int index)

当前目录下删除目录。将要删除的目录可能非空。有两种策略:一、规定只能删除空目录。

二、递归地将非空目录的所有子目录删除,让后再删除自己。第一种实现较简单,我使用了第二种策略。所以参数为 (子目录名,当前结点)。如果使用第一种策略的话,参数为只要子目录名就可以了。

3.void ls(void)

显示当前结点的所有子目录

4.void cd(char *string)

改变当前目录。有四中处理过程: string为“.”切换到当前目录;为“..”

切换到父目录 ;为“/”切换到根目录;如果为一路径的话,就调用bool find(char *string) 切换到指定目录。

8. chsome.h

定义一个底层函数:


操作系统大型试验(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初三电流电压练习题 无答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: