操作系统实验报告(7)

2019-05-17 12:17

//如果要读的文件已经在uof中 cmRead.readUof(userUof); list::iterator it;

for(it=userUof.begin();it!=userUof.end();++it) { if(it->fileName==s) { //找到了该文件,调用函数读取,并修改uof表 cmRead.readFileN(it->filePoint,n); it->readP+=n;

cmRead.reWriteUof(userUof); return 13;

}

}

//不在uof中 list::iterator iu; int count=0;

for(iu=userUfd.begin();iu!=userUfd.end();++iu) { count++;

if(iu->fileName==s) {

//找到该文件,先打开,更新uof uof ut; //文件属性在disk.txt中的位置

int position=usermfd.ufdLink*514+(count-1)*32+14; char *p=\为打开模式 ut.set(iu->fileName,position,p,n,0,2);

userUof.push_back(ut);//在uof表的最后添加一项 cmRead.readUof(userUof);//uof表重新写入disk

31

}

}

}

cmRead.readFileN(iu->fileFirstBlock,iu->fileLength,n); return 13;

cout<<\无该文件,请检查文件名!\\n\return 13;

int Chmod(string s,int n) {

//如果模式不满足要求0-2

if(n<0||n>2){cout<<\无该模式,模式0-readonly;1-writeonly;2-read/write,请核对输入

\

//否则继续 list::iterator it;

for(it=userUfd.begin();it!=userUfd.end();++it) {

if(it->fileName==s) {

it->fileMode=n+'0'; }

int Command::Create(string s,int n) {

}

}

cmRead.reWriteUfdTotal(userUfd,usermfd.ufdLink); cout<<\修改成功!\\n\return 12;

cout<<\无该文件!\\n\return 12;

//判断文件名是否存在

32

list::iterator it;

for(it=userUfd.begin();it!=userUfd.end();++it) { if(it->fileName==s)

{

cout<<\文件名已存在,不能创建!\\n\ return 11;

}

}

//添加文件到ufd表中 ufd temp;

char *f=\文件存在标志位, char *p;

p=(char*)s.c_str();//文件名,string不能直接赋值给char*,只能通过强制转换char m=n+'0';

int b=cmRead.getNewDataBlock(); cmRead.upDateFat(); temp.set(f,p,m,0,b); userUfd.push_back(temp);

cmRead.reWriteUfdTotal(userUfd,usermfd.ufdLink);

//添加信息到uof表中 uof ut; //文件属性在disk.txt中的位置

int position=usermfd.ufdLink*514+(userUfd.size()-1)*32+14; char *p2=\0为创建模式

ut.set(temp.fileName,position,p2,0,0,2);

userUof.push_back(ut);//在uof表的最后添加一项 cmRead.readUof(userUof);//uof表重新写入disk cout<<\创建成功!\\n\

33

}

return 11;

主要功能模块:

int Read(string s,int n);//读文件 int Open(string s,int n);//打开文件 int Write(string s,string t,int n);//写文件

运行结果:

主界面

Help 指令显示所有命令

34

建立文件

删除文件

35

总结:

尽管这段时间要忙于多门课程的复习,还是认真的做完了以上老师交给的任务. 首先获得的最大收获当然就是对于操作系统的内部原理的认识和学习. 从理论上了解后就开始实际编程实现这些算法, 这其中花了很多时间. 不过有语言和数据结构的基础基本的实现还是没有很大的问题. 但是由于以前写的都是不超过两百行的小型代码, 也没遇到过需要大量数据结构的封装的, 而编写这类程序则不同, 算法不会很难, 但是其中需要各种数据结构以及进行合理有效的连接等. 之前程序规划的不合理导致多次修改代码, 使得效率比较低下. 所以以后编写这类程序一定要事前想好各个数据结构以及模块功能, 然后想好该怎么实现接口等, 这样才能减少错误和提高效率.

36


操作系统实验报告(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:监理规划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: