简单文件系统实现.doc

简单文件系统实现.doc

ID:49712473

大小:91.50 KB

页数:15页

时间:2020-03-03

简单文件系统实现.doc_第1页
简单文件系统实现.doc_第2页
简单文件系统实现.doc_第3页
简单文件系统实现.doc_第4页
简单文件系统实现.doc_第5页
资源描述:

《简单文件系统实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.#include#include#include#includeusingnamespacestd;#defineGENERAL1//1代表普通文件2代表目录文件0表示空文件#defineDIRECTORY2#defineZero0structFCB{charfname[16];//文件名chartype;//0空文件1目录文件2空文件intsize;//文件大小intfatherBlockNum;//当前的父目录盘块号intcurrentBlockNum;//当前的

2、盘块voidinitialize(){strcpy(fname,"");type=Zero;size=0;fatherBlockNum=currentBlockNum=0;}};constchar*FilePath="C:\myfiles";/*常量设置*/constintBlockSize=512;//盘块大小constintOPEN_MAX=5;//能打开最多的文件数constintBlockCount=128;//盘块数constintDiskSize=BlockSize*BlockCount;//磁盘大小64KconstintF

3、cbCount=BlockSize/sizeof(FCB);//目录文件的最多FCB数intOpenFileCount=0;//统计当前打开文件数目structOPENLIST//用户文件打开表{intfiles;//当前打开文件数FCBf[OPEN_MAX];//FCB拷贝OPENLIST(){files=0;for(inti=0;i

4、结构---------------*/{structFCBfcb[FcbCount];voidinit(int_FatherBlockNum,int_CurrentBlockNum,char*name)//父块号,当前块号,目录名{strcpy(fcb[0].fname,name);//本身的FCBfcb[0].fatherBlockNum=_FatherBlockNum;fcb[0].currentBlockNum=_CurrentBlockNum;fcb[0].type=DIRECTORY;//标记目录文件for(inti=1;i

5、Count;i++){fcb[i].fatherBlockNum=_CurrentBlockNum;//标记为子项fcb[i].type=Zero;//标记为空白项}}};structDISK/**********************************************************************/{intFAT1[BlockCount];//FAT1intFAT2[BlockCount];//FAT2structdirFileroot;//根目录chardata[BlockCount-3][BlockSi

6、ze];voidformat(){memset(FAT1,0,BlockCount);//FAT1清零memset(FAT2,0,BlockCount);//FAT2清零FAT1[0]=FAT1[1]=FAT1[2]=-2;//0,1,2盘块号依次代表FAT1,FAT2,根目录区FAT2[0]=FAT2[1]=FAT2[2]=-2;//FAT作备份root.init(2,2,"C:\");//根目录区memset(data,0,sizeof(data));//数据区清零}};FILE*fp;//磁盘文件地址char*BaseAddr;//虚

7、拟磁盘空间基地址stringcurrentPath="C:\";//当前路径intcurrent=2;//当前目录的盘块号..页脚..stringcmd;//输入指令structDISK*osPoint;//磁盘操作系统指针charcommand[16];//文件名标识structOPENLIST*openlist;//用户文件列表指针intformat();intmkdir(char*sonfname);intrmdir(char*sonfname);intcreate(char*name);intlistshow();intdelfil

8、e(char*name);intchangePath(char*sonfname);intwrite(char*name);intexit();intopen(ch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。