教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

操作系统实验报告(3)

来源:网络收集 时间:2026-04-07
导读: (4).关闭文件:close(文件名) 对某个文件不需要再读或写时,用户应关闭文件。若关闭一个新建立的文件,则要建立文件的结束标志。对链接文件来说,最后一块中的链接字应为“0”。关闭文件的工作流程如下: “关闭

(4).关闭文件:close(文件名)

对某个文件不需要再读或写时,用户应关闭文件。若关闭一个新建立的文件,则要建立文件的结束标志。对链接文件来说,最后一块中的链接字应为“0”。关闭文件的工作流程如下:

“关闭文件”模拟流程

开 始 查用户 UOF 文件为“建立” 状态? 否 是 置文件结束标志 文件为“打开”状态? 消除该文件在UOF中的登记栏 否

显示:文件已关闭 显示:“关闭文件”成功 返 回

(5).删除文件:delete(文件名)

把请求撤消的文件从用户文件目录表中除名,收回该文件占用的存储区域。处理流程如下:

“删除文件”模拟流程

开 始 查该用目录表 UFD UFD中有该文件? 是 查该用户的UOF 显示:文件已撤消 返 回 UOF中有该文件? 是 否 在 UOF中清除该文件的登记栏 归 还文件所占的存储区域 在 UFD中清除该文件登记栏

(6).写文件:write(文件名,记录号)

否 执行写文件操作时要区分两种情况,第一种是在执行create后要求写。第二种是在执行open后要求写的。对第二种情况可认为用户要对一个已建立好的文件进行修改。一个文件可以分多次写,既可按记录顺序写也可随机写一个记录,采用顺序写时可省略记录号。模拟写文件操作的工作的流程图如下:

“写文件”模拟流程

开 始 该文件为“建立”状态? 返 回 是 把记录信息写到“写指针”指出的物理块中(用显示物理块号来模拟) 文件属性为“只读”? 是 查用户的UOF UOF中有该文件 否 显示:文件尚未建立或打开,不能写

是 显示:操作不合法,不能写 否 顺序修改? 是 取出“写指针”指出的块号 找出存放指定记录的块返 回 修改“写指针” 把修改后的信息写入找到的物理块中 显示:“写文件”成功 返 回 注:流程图中“寻找空闲块”的工作可以用取一个随机数来模拟,取到的随机灵敏即为空闲块号

五:源程序及注释如下:

#define S 10 #define L 20 #define N 30 #include\#include\#include\struct UFD{

char fname[20]; char shuxing[20]; int length; int addr; };

struct UOF{

char fname[20]; char shuxing[10]; int length; char state[10]; int *w,*r; }; struct MFD{

char uname[25]; struct UFD ufd[L]; struct UOF uof[S]; };

struct MFD mfd[N];

create(int x); open(int x); close(int x); Read(int x); write(int x); delete(int x);

main() {

char namestr[20],order[20]; int i,j;

/*chu shi hua MFD*/

/************************************************************/ strcpy(mfd[0].uname,\

strcpy(mfd[0].ufd[0].fname,\ strcpy(mfd[0].ufd[0].shuxing,\ mfd[0].ufd[0].length=25; mfd[0].ufd[0].addr=6120; /*

printf(\ame,mfd[0].ufd[0].shuxing,mfd[0].ufd[0].length,mfd[0].ufd[0].addr);*/ strcpy(mfd[0].ufd[1].fname,\ strcpy(mfd[0].ufd[1].shuxing,\ mfd[0].ufd[1].length=20; mfd[0].ufd[1].addr=0;

strcpy(mfd[0].ufd[2].fname,\strcpy(mfd[0].ufd[2].shuxing,\ mfd[0].ufd[2].length=20; mfd[0].ufd[2].addr=1000;

strcpy(mfd[1].uname,\

strcpy(mfd[1].ufd[0].fname,\ strcpy(mfd[1].ufd[0].shuxing,\ mfd[1].ufd[0].length=30; mfd[1].ufd[0].addr=4020;

strcpy(mfd[1].ufd[1].fname,\ strcpy(mfd[1].ufd[1].shuxing,\ mfd[1].ufd[1].length=21; mfd[1].ufd[1].addr=1;

/*chu shi hua UOF*/

strcpy(mfd[0].uof[0].fname,\

strcpy(mfd[0].uof[0].shuxing,mfd[0].ufd[0].shuxing); mfd[0].uof[0].length=mfd[0].ufd[0].length; strcpy(mfd[0].uof[0].state,\ mfd[0].uof[0].w=mfd[0].ufd[0].addr; mfd[0].uof[0].r=mfd[0].ufd[0].addr;

strcpy(mfd[0].uof[1].fname,\

strcpy(mfd[0].uof[1].shuxing,mfd[0].ufd[2].shuxing); mfd[0].uof[1].length=mfd[0].ufd[2].length; strcpy(mfd[0].uof[1].state,\ mfd[0].uof[1].w=mfd[0].ufd[2].addr; mfd[0].uof[1].r=mfd[0].ufd[2].addr; /* printf(\

/*******************************************************/

…… 此处隐藏:656字,全部文档内容请下载后查看。喜欢就下载吧 ……
操作系统实验报告(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/453287.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)