操作系统实验六
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
山东英才学院
计算机电子信息工程学院实验报告
成绩________ 课程名称计算机操作系统指导教师实验日期
院(系)专业班级实验地点
学生姓名学号
实验项目名称实验六目录管理
计算机电子信息工程学院实验报告(附页)实验数据记录、处理及结果分析如下:
实验六文件目录管理第 2 页共 14 页
山东英才学院
代码如下:
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#define L 6 /* 用户最多保存的文件数 */ #define N 5 /* 系统可同时管理的用户数*/ 实验六文件目录管理第 4 页共 14 页
山东英才学院 char MFD[N][20]={"abc","xyz"};
int U;
static int memo[128]={10,20,30,40,50,60,70,80,90};
/*用户文件目录*/
struct FCB
{ char filename[20];/*文件名*/
char access;/*文件属性*/
int length;/*记录长度*/
int flag;/*文件状态*/
int write;
int address[5];/*文件地址*/
int p[5];
};
/*用户已打开文件表*/
struct UOF
{ char filename[20];/*文件名*/
char access;/*文件属性*/
int length;/*记录长度*/
int flag;/*状态*/
int write;/*写指针*/
int cre_clo; /*1 is creat;0 is close*/
};
struct FCB
UFD[N][L] ={{{"a.txt",'w',3,1,3,{10,20,30},{10,20,30}},
{"b.txt",'r',3,1,3,{40,50,60},{40,50,60}}},
{{"c.txt",'w',3,1,3,{70,80,90},{70,80,90}}}
};
struct UOF UOF[20];
/*建立文件函数*/
void creat()
{ int j,le,i,address;
int m;
char s[20];
char ac;
printf("请输入文件名\n");
scanf("%s",s);
for(j=0;j if(strcmp(UFD[U][j].filename,s)==0) {printf("文件名相同,不能创建!\n"); break; } if(j==L) { printf("文件长度:\n"); scanf("%d",&le); getchar(); printf("文件属性:\n"); scanf("%c",&ac); getchar(); printf("请输入第一个地址\n"); scanf("%d",&address); for(j=0;j<128;j++) {if(memo[j]==0) { memo[j]=address; break; } } UFD[U][j].address[0]=address; UFD[U][j].p[0]=UFD[U][j].address[0] ; for(i=0;i {if(UFD[U][i].flag==0) { strcpy(UFD[U][i].filename,s ); UFD[U][i].access=ac; UFD[U][i].length=le; 实验六文件目录管理第 6 页共 14 页 山东英才学院 UFD[U][i].flag=1; UFD[U][i].address[0]=address; m=i; break; } } for(i=0;i<5;i++) if(UOF[i].flag==0) { strcpy( UOF[i].filename,s) ; UOF[i].length=le; UOF[i].access=ac; UOF[i].cre_clo=1; UOF[i].flag=1; break; } printf("\n文件创建成功!\n"); } } /*关闭文件函数*/ void close(char name[20]) { int i; for(i=0;i if(strcmp(UOF[i].filename,name)==0) {UOF[i].cre_clo=0; strcpy(UOF[i].filename,""); UOF[i].access=' '; UOF[i].length =0; UOF[i].write =0; UOF[i].flag=0; printf("文件成功关闭\n");break; } }