:模拟一个简单的文件管理系统。实现下列功能:1)建立文件2)打开文件3)关闭文件4)删除文件5)建立目录6):以一个真实的文件来模拟一块磁盘。1)需自行定义的数据结构有:{charname[3];/*文件或目录名*/chartype[2];/*文件类型名*/charattribute;/*属性*/charaddress;/*文件或目录的起始盘块号*/charlength;/*文件长度,以盘块为单位*/}content;/*目录结构*/{intdnum;/*磁盘盘块号*/intbnum;/*盘块内第几项*/}pointer;/*已打开文件表中读写指针的结构*/{charname[20];/*文件绝对路径名*/charattribute;/*文件的属性,用1个字节表示,所以用了char类型*/intnumber;/*文件起始盘块号*/intlength;/*文件长度,文件占用的字节数*/intflag;/*操作类型,用"0"表示以读操作方式开文件,用"1"表示写操作方式打开文件*/pointerread;/*读文件的位置,文件刚打开时dnum为文件起始盘块号,bnum为"0"*/pointerwrite;/*写文件的位置,文件建立时dnum为文件起始盘块号,bnum为"0",打开时为文件末尾*/}OFILE;/*已打开文件表项类型定义*/{OFILEfile[n];/*已打开文件表*/intlength;/*已打开文件表中登记的文件数量*/}openfile;/*已打开文件表定义*/charbuffer1[64];/*模拟缓冲1*///模拟磁盘上的物理块中存放的具体数据contentbuffer2[8];/*模拟缓冲2*///模拟磁盘上的物理块中存放的目录FILE*fc;/*模拟磁盘的文件指针*/2)需要设计的函数:(char*name)(char*name)(content*x)()分配一个磁盘块,返回块号。从FAT中依次查找,找到一个空闲的磁盘区,(char*name,intflag,int*dnum,int*bnum)查找路径名为name的文件或目录,(char*name,intattribute)(char*name,intattribute)(char*name)(char*name)(char*name)(char*name)我来帮他解答2008-1-1716:29满意回答#include""#include""#include""//主文件结构体structMasterFile{charusername[20];//用户名charpassword[20];//用户名密码charflag;//标志structMasterFile*next;};//用户文件结构体structUserFile{intfnum;//文件编号charfname[20];//文件名intflength;//文件长度charflag;//标志charfpw[20];//文件保护码structUserFile*link;};//全局变量intshoudsave;//存储标记intusingnum;//当前用户标记structMasterFileMFD[20];//主目录structUserFileUFD[20][20];//用户目录//寻找主目录空闲区structMasterFile*MoveMFDToLast(){for(inti=0;i<20;i++){if(MFD[i].flag==0)usingnum=i;return&MFD[i];}returnNULL;}//查找用户structMasterFile*SearchMFD(charstr[]){for(inti=0;i<20;i++){if(strcmp(str,MFD[i].username)==0){usingnum=i;return&MFD[i];}}returnNULL;}//寻找用户目录空闲区structUserFile*MoveUFDToLast(){for(inti=0;i<20
文件管理系统 来自淘豆网m.daumloan.com转载请标明出处.