实验4 文件系统模拟 实验4 文件系统模拟 一、 实验目的: 设计和实现基于 FAT12 的模拟磁盘卷及其 I/O 系统的文件存取操作基本功能函数,深入领会和理解文件系统的体系结构、工作原理和设计要领
二、 实验设计 1
根据 FAT12 设计模拟磁盘(1
44MB 软盘映像文件)的磁盘组织结构及文件或空闲盘块管理方法与描述用数据结构,并实现模拟磁盘的创建和格式化操作
设计和实现模拟磁盘 I/O 操作暨物理盘块与缓冲区(缓冲区与物理盘块大小相同)间数据交互的两个函数
构建和提供用户与文件系统之间的基本接口,包括目录和文件的创建、重命名、删除和显示操作,目录的进入操作以及文件的定位及读、写操作
测试系统功能并给出有效证据
三、 源程序清单和说明 实验4 文件系统模拟 #include #include #include #define BlockSize 512 #define DirSize 32 #define RootSize 2 struct ReserveBlock{ int sysblocknum;/*文件系统总扇区数*/ int resblocknum;/*保留扇区扇区数*/ int fatblocknum;/*FAT 表扇区数*/ int rootblocknum;/*根目录区扇区数*/ char fillchar[BlockSize-4*sizeof(int)];/*填充字节*/ }; struct DirBlock{ char filename[11]; /*文件名限长11个字符*/ char fillchar[DirSize-4*sizeof(int)-sizeof(long int)-11];/*填充字节*/ long filelen; /*文件长度*/ int year,month,day; /*日期*/ int fir