操作系统实验六

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

}

相关文档
最新文档