欢迎来到天天文库
浏览记录
ID:57631101
大小:66.50 KB
页数:19页
时间:2020-08-29
《实验 文件全全资料管理系统(二).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验六:文件系统一、目的要求1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质容和执行过程有比较深入的了解。2、要求设计一个n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。二、例题: ①设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。②程序采用二级文件目录(即设置主目录[MFD])和用户文件目
2、录(UED)。另外,为打开文件设置了运行文件目录(AFD)。③为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。④算法与框图:a、因系统小,文件目录的检索使用了简单的线性搜索。b、文件保护简单使用了三位保护码:允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。c、程序中使用的主要设计结构如下:Ⅰ、主文件目录和用户文件目录(MFD、UFD)Ⅱ、打开文件目录(AFD)(即运行文件目录)MDF用户名文件目录指针用户名文件目录指针 UFD文件名保护码文件长度文件名A
3、FD打开文件名打开保护码读写指针 三、调度算法的流程图四、文件管理源程序#include#include#include#includetypedefstructufd{charfilename[10];/*文件名*/charprocode[8];/*属性*/intlength;/*文件长度*/structufd*nextfile;/*指向下一个文件*/}UFD;typedefstructmfd{charusername[10];/*用
4、户名*/structufd*link;/*指向该用户的第一个文件*/}MFD;typedefstructprotected_flag{charcode[4];}PRO;typedefstructafd/*运行文件目录*/{charfilename[10];/*打开文件名*/charprocode[4];intrwpointer;/*读写指针*/}AFD;PROflag[3]={"100",/*只读*/"110",/*读写*/"001"/*可执行*/};UFD*rw_pointer;/*读写指针*/AFD*afd=
5、NULL;MFDfilesystem[10];intnum;/*当前用户个数*/voiddisplayallfile(){inti;UFD*p;for(i=0;i6、7、",p->filename);printf("文件属性:%st8、9、",p->procode);printf("文件长度:%d",p->10、length);p=p->nextfile;}}}voidinput()/*建立用户文件系统*/{inti,j;intlength;charfilename[10];charprocode[4];UFD*p1,*p2,*first;for(i=0;i<10;i++)filesystem[i].link=NULL;printf("用户:");scanf("%d",&num);for(i=0;i11、ilesystem[i].username);}for(i=0;i12、=(UFD*)malloc(sizeof(UFD));first->nextfile=NULL;strcpy(first->filename,filename);strcpy(first->procode,procode);first->length=length;p1=p2=first;j++;while(1){printf("文件%d:",j);printf("长
6、
7、",p->filename);printf("文件属性:%st
8、
9、",p->procode);printf("文件长度:%d",p->
10、length);p=p->nextfile;}}}voidinput()/*建立用户文件系统*/{inti,j;intlength;charfilename[10];charprocode[4];UFD*p1,*p2,*first;for(i=0;i<10;i++)filesystem[i].link=NULL;printf("用户:");scanf("%d",&num);for(i=0;i11、ilesystem[i].username);}for(i=0;i12、=(UFD*)malloc(sizeof(UFD));first->nextfile=NULL;strcpy(first->filename,filename);strcpy(first->procode,procode);first->length=length;p1=p2=first;j++;while(1){printf("文件%d:",j);printf("长
11、ilesystem[i].username);}for(i=0;i12、=(UFD*)malloc(sizeof(UFD));first->nextfile=NULL;strcpy(first->filename,filename);strcpy(first->procode,procode);first->length=length;p1=p2=first;j++;while(1){printf("文件%d:",j);printf("长
12、=(UFD*)malloc(sizeof(UFD));first->nextfile=NULL;strcpy(first->filename,filename);strcpy(first->procode,procode);first->length=length;p1=p2=first;j++;while(1){printf("文件%d:",j);printf("长
此文档下载收益归作者所有