电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

实验4文件系统模拟

实验4文件系统模拟_第1页
1/13
实验4文件系统模拟_第2页
2/13
实验4文件系统模拟_第3页
3/13
实验4 文件系统模拟 实验4 文件系统模拟 一、 实验目的: 设计和实现基于 FAT12 的模拟磁盘卷及其 I/O 系统的文件存取操作基本功能函数,深入领会和理解文件系统的体系结构、工作原理和设计要领。 二、 实验设计 1. 根据 FAT12 设计模拟磁盘(1.44MB 软盘映像文件)的磁盘组织结构及文件或空闲盘块管理方法与描述用数据结构,并实现模拟磁盘的创建和格式化操作。 2. 设计和实现模拟磁盘 I/O 操作暨物理盘块与缓冲区(缓冲区与物理盘块大小相同)间数据交互的两个函数。 3. 构建和提供用户与文件系统之间的基本接口,包括目录和文件的创建、重命名、删除和显示操作,目录的进入操作以及文件的定位及读、写操作。 4. 测试系统功能并给出有效证据。 三、 源程序清单和说明 实验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 firstblockaddr; /*文件首块扇区号*/ }; struct FCBBlock{ int fileid; /*文件标识*/ struct DirBlock fileinfo; /*目录信息*/ long filepos; /*文件读写指针*/ int fdtblockaddr; /*目录项所在块号*/ int fdtblockindex; /*目录项所在块内序号*/ struct FCBBlock *next;/*指向下一个文件控制块的指针*/ }; struct ReserveBlock sys1; struct FCBBlock *fcb; struct DirBlock fil[32],*dir;/*目录项*/ int *fat1; char *str,*ptr; char fillchar[BlockSize]; FILE *fp; FILE *OPENSYS(char *filename){ int i; fp=fopen(filename,"rb+"); fread(&sys1,1,BlockSize,fp); fat1=(int *)malloc(sys1.sysblocknum); for(i=0;i

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

实验4文件系统模拟

您可能关注的文档

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群