操作系统课程设计文件系统.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程设计文件系统 #include stdio.h #include memory.h #include string #include iostream using namespace std; struct FCB { char fname[16];//文件名 int type;//1代表普通文件2代表目录文件0表示空文件 int size;//文件大小 int fatherBlockNum;//当前的父目录盘块号 int currentBlockNum;//当前的盘块 void initialize() { strcpy(fname,[message]); type=0; size=0; fatherBlockNum=currentBlockNum=0; } }; const char*FilePath=C:\myfiles; const int BlockSize=512;//盘块大小(可配置) const int OPEN_MAX=5;//能打开最多的文件数 const int BlockCount=BlockSize/sizeof(int);//盘块数 const int DiskSize=BlockSize*BlockCount;//磁盘大小 const int BlockFcbCount=BlockSize/sizeof(FCB);//目录文件的最多FCB数 //const int IOBUF_SIZE=512; //char IOBuffer[IOBUF_SIZE]; int OpenFileCount=0; struct OPENLIST//用户文件打开表 { int files;//当前打开文件数 FCB f[OPEN_MAX];//FCB拷贝 OPENLIST() { files=0; for(int i=0;i OPEN_MAX;i++){ f[i].fatherBlockNum=-1;//为分配打开 f[i].type=0; } } }; struct dirFile { struct FCB fcb[BlockFcbCount]; void init(int _FatherBlockNum,int _CurrentBlockNum,char*name)//父块号,当前块号,目录名 { strcpy(fcb[0].fname,name);//本身的FCB fcb[0].fatherBlockNum=_FatherBlockNum; fcb[0].currentBlockNum=_CurrentBlockNum; fcb[0].type=2;//标记目录文件 for(int i=1;i BlockFcbCount;i++){ fcb[i].fatherBlockNum=_CurrentBlockNum;//标记为子项 fcb[i].type=0;//标记为空白项 } } }; struct DISK { int FAT1[BlockCount];//FAT1 int FAT2[BlockCount];//FAT2 struct dirFile root;//根目录 char data[BlockCount-3][BlockSize]; void format() { 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,G:\);//根目录区 memset(data,0,sizeof(data));//数据区 } }; FILE*fp;//磁盘文件地址 char*BaseAddr;//虚拟磁盘空间基地址 string currentPath=G:\;//当前路径 int current=2;//当前目录的盘块号 string cmd;//输入指令 struct DISK*osPoint;//磁盘操作系统指针 char command[16];//文件名标识 struct OPENLIST*openlist;//用户文件列表指针 int format(); int mkdir(char*sonfname); int rmdir(char*sonfname); int create(char*name); int listshow(); int delfile(char*name); int changePath(char*sonfname); int write(char*name); int exit();

文档评论(0)

beoes + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档