操作系统 模拟linux文件管理系统
struct DIR//目录项(36B)
{
char fname[14];//文件名(当前目录) setw(15) (0 ~ 14)
int index;//i结点号 setw(3) (15 ~ 17)
char parfname[14];//父目录名 setw(15) (18 ~ 32)
int parindex;//父目录i结点号 setw(3) (33 ~ 35)
};
结点结构中的文件盘块数,目录项结构中的父目录名,父目录i结点号,其实可以不要,基本是不用到或是可以不用的,但是当我意识到时,程序已编得差不多了,为了避免牵一发而动全身,只好留着!
6
.用户,密码和组
我的用户组信息是存放在另一个文件
(user.txt)
中的。
三.各个主要功能模块(函数)的说明
1.main.cpp:
是程序的主函数模块
主函数首先会根据控制文件control.txt的头一个位(初始化确定位)来确定是否进行初始化。如果初始化,那么将只有一个根目录。因为一旦初始化后,初始化确定位就会置为0,所以系统只会在第一次进入时初始化,以后都是在前面建立的文件结构上进行操作的。如果一定要系统初始化时,可把control.txt的头一个位置为1,或者使用命令“reset”。
进入系统时,当前路径是根目录。然后是登陆请求。登陆后,超块读入内存(由一个结构对象superblock模拟),进入命令解析层,对用户的不同命令执行不同的操作。退出系统前,把内存的超块再写回disk.txt。
2.head.h:
是程序的所有全局变量、结构、函数声明的模块。也包括了所有要用到的系统库。
3.superblock.h:
是定义有关超块、结点、盘块、目录项的底层操作函数的模块。
1.对结点的操作:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库操作系统大型试验(3)在线全文阅读。
相关推荐: