- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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();
您可能关注的文档
最近下载
- 15《小岛》(说课课件)部编版语文五年级上册.pptx VIP
- 含电容电路含电容电路.doc VIP
- TED中英双语演讲稿Why we love, why we cheat.pdf VIP
- 债券借贷视角看利率.pptx VIP
- 画法几何及机械制图(第6版)课后习题答案解析.pdf
- GB/T 19024-2025质量管理体系 面向质量结果的组织管理 实现财务和经济效益的指南.pdf
- 党课讲稿:从网络大国走向网络强国,让互联网点亮我们的生活.doc VIP
- ARC低压无功补偿装置安装使用说明书(安瑞科液晶显示).pdf VIP
- 班主任如何培养班干部(课件PPT).pptx VIP
- 深圳市历年中考真题及答案2025.doc VIP
原创力文档


文档评论(0)