操作系统文件管理系统模拟实验

操作系统文件管理系统模拟实验

ID:6328221

大小:188.50 KB

页数:18页

时间:2018-01-10

操作系统文件管理系统模拟实验_第1页
操作系统文件管理系统模拟实验_第2页
操作系统文件管理系统模拟实验_第3页
操作系统文件管理系统模拟实验_第4页
操作系统文件管理系统模拟实验_第5页
资源描述:

《操作系统文件管理系统模拟实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、文件管理系统模拟1.实验目的通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现2.实验内容为Linux系统设计一个简单的二级文件系统。要求做到以下几点:(1)可以实现下列几条命令(至少4条)login用户登录dir列文件目录create创建文件delete删除文件open打开文件close关闭文件read读文件write写文件(2)列目录时要列出文件名、物理地址、保护码和文件长度;(3)源文件可以进行读写保护。3.实验提示(1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放

2、于磁盘,这样便于查找和修改。(2)用户创建的文件,可以编号存储于磁盘上。入file0,file1,file2…并以编号作为物理地址,在目录中进行登记。4.源代码#include#include#include#defineMEM_D_SIZE1024*1024//总磁盘空间为1M#defineDISKSIZE1024//磁盘块的大小1K#defineDISK_NUM1024//磁盘块数目1K#defineFATSIZEDISK_NUM*sizeof(structfatitem)/

3、/FAT表大小#defineROOT_DISK_NOFATSIZE/DISKSIZE+1//根目录起始盘块号#defineROOT_DISK_SIZEsizeof(structdirect)//根目录大小#defineDIR_MAXSIZE1024//路径最大长度为1KB#defineMSD5//最大子目录数5#defineMOFN5//最大文件深度为5#defineMAX_WRITE1024*128//最大写入文字长度128KBstructfatitem/*size8*/{intitem;/*存放文件下一个磁盘的指针*/charem_

4、disk;/*磁盘块是否空闲标志位0空闲*/};structdirect{/*-----文件控制快信息-----*/structFCB{charname[9];/*文件/目录名8位*/charproperty;/*属性1位目录0位普通文件*/intsize;/*文件/目录字节数、盘块数)*/intfirstdisk;/*文件/目录起始盘块号*/intnext;/*子目录起始盘块号*/intsign;/*1是根目录0不是根目录*/}directitem[MSD+2];};structopentable{structopenttableit

5、em{charname[9];/*文件名*/intfirstdisk;/*起始盘块号*/intsize;/*文件的大小*/}openitem[MOFN];intcur_size;/*当前打文件的数目*/};structfatitem*fat;/*FAT表*/structdirect*root;/*根目录*/structdirect*cur_dir;/*当前目录*/structopentableu_opentable;/*文件打开表*/intfd=-1;/*文件打开表的序号*/char*bufferdir;/*记录当前路径的名称*/cha

6、r*fdisk;/*虚拟磁盘起始地址*/voidinitfile();voidformat();voidenter();voidhalt();intcreate(char*name);intopen(char*name);intclose(char*name);intwrite(intfd,char*buf,intlen);intread(intfd,char*buf);intdel(char*name);intmkdir(char*name);intrmdir(char*name);voiddir();intcd(char*name)

7、;voidprint();voidshow();voidinitfile(){fdisk=(char*)malloc(MEM_D_SIZE*sizeof(char));/*申请1M空间*/format();}voidformat(){inti;FILE*fp;fat=(structfatitem*)(fdisk+DISKSIZE);/*计算FAT表地址,引导区向后偏移1k)*//*-----初始化FAT表------------*/fat[0].item=-1;/*引导块*/fat[0].em_disk='1';for(i=1;i

8、OT_DISK_NO-1;i++)/*存放FAT表的磁盘块号*/{fat[i].item=i+1;fat[i].em_disk='1';}fat[ROOT_DISK_NO].item=-1;/*存放根目录的

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

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

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