初始化 主程序 删除文件 打开文件 四、实验结果(程序截图) 界面 五、思考与探索 文件系统的难点: 文件系统是我们经历的最难的一个实验了。除了代码量大,还有就是很难理解。下面是我们在和组员交流我们的代码时,组员的问题和解答(可能有不准确的地方) (1).和..两个特殊的目录项,他们的first(文件起始盘块号)指向哪里? 答:在根目录中,它们两个都指向同一个盘块,就是他自己。但其他文件中,“.”指向他自己的起始盘块号,而“..”指向他父亲的起始盘块号 (2)为什么在my_format()函数中, fat1 = (fat *)(myvhard + BLOCKSIZE); fat2 = (fat *)(myvhard + 3 * BLOCKSIZE); root = (fcb *)(myvhard + 5 * BLOCKSIZE); 为什么都差了2个盘块大小 答:这个要从磁盘布局说起 虚拟磁盘一共划分成1000个磁盘块,每个块1024个字节,其中引导块占一个盘块,两张FAT各占2个盘块,剩下的空间全部是数据区,在对虚拟磁盘进行格式化的时候,将把数据区第1块(即虚拟磁盘的第6块)分配给根目录文件, 如图所示: 块数1块引导块2块FAT12块FAT2995块数据区 (3)为什么创建子目录的时候length = 2 * sizeof(fcb) 答:这是因为它在创建子目录就创建两个特殊的目录项