Linux文件系统实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

黄冈师学院

提高型实验报告

实验课题文件系统的设计与实现(实验类型:□综合性 设计性□应用性)

实验课程操作系统原理

实验时间2015-2016 第二学期

学生何正发

专业班级软件工程1401

学号07

成绩:

一、实验目的和要求

1、熟悉操作系统设计的过程,巩固操作系统的基本知识,加深对操作原理、功能及各种不同的存储管理方法理解与应用;

2、学会运用各种语言、软件开发新软件的基本方法;

3、增强实际应用能力和动手操作能力。

二、实验条件

Win7 /Windows 8.1/Linux等操作系统,装有java、C、C++、C#等语言工具的环境。

三、实验原理分析

可以选择最佳适应算法,按照从小到大的次序组成空闲区自由链,当用户作业或进程申请一个空闲区时,存储管理

程序从表头开始查找,当找到第一个満足要求的空闲区时,停止查找。如果该空闲区大于请求表中的请求长

度,将减去请求长度后的剩余空闲区部分留在可用表中。回收时,从作链中删去要回收的作业块,同时在空

闲链中插入该作业大小的空闲区,并按顺序排列

四、实验方案或步骤

1、应用环境、需求分析

本模拟系统主要针对文件的管理和操作名主要有:创建用户、文件、文件夹,读文件,写文件,执行文件,关闭文件,删除用户、文件夹、文件的功能。

创建用户、文件、文件夹:在对系统发出操作命令之前必须先登录用户,然而登录之前必须创建该用户。在创建完后,可通过登录用户来创建文件和文件夹。在创建文件时可设置文件的属性和输入文件的容。

读文件:读取任何已创建的只读或读写文件的容;如果所要读的文件不是可读文件时,系统会显示该文件不可读;如果所读文件不存在,系统会显示文件不存在。

写文件用户可写或重写读写文件中的容,并保存文件中的重写容,以供下次读取;当所要写的文件不是可写的文件时,系统会显示该文件不可写;当所要写的文件并不存在时,系统会显示该文件不存在。

执行文件:登录用户后,用户可执行系统中已创建的执行文件;当该文件不是可执行文件时,系统会显示该文件不可执行;当该文件不存在时,系统将会显示该文件不存在。

关闭文件:可通过选择关闭文件的功能选项,来关闭系统中所有打开的文件,如果没有文件被打开,则系统会显示没有文件打开。

删除用户、文件、文件夹:用户可通过选择删除的功能选项来删除不想再保存的文件和文件夹,删除后,用户会自动注销;当选择删除用户的功能选项时,系统会删除该用户,以及该用户所创建的所有文件和文件夹。

2、概要设计

打开文件流程图:

写文件流程图:

关闭文件流程图:

3、详细设计

(1)用户结构:账号与密码结构

typedef struct users

{

char name[8];

char pwd[10];

}users;

本系统有8个默认的用户名,前面是用户名,后面为密码,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。

users usrarray[8] =

{

"usr1","usr1",

"usr2","usr2",

"usr3","usr3",

"usr4","usr4",

"usr5","usr5",

"usr6","usr6",

"usr7","usr7",

"usr8","usr8",

};

(2)数据结构说明

a)文件结构链表

struct fnode

{

char filename[FILENAME_LENGTH];

int isdir;

int isopen;

char content[255];

fnode *parent;

fnode *child;

fnode *prev;

fnode *next;

};

b)函数介绍

fnode *initfile(char filename[],int isdir);//初始化文件或目录void createroot();//建立系统根目录

int run();系统运行

int findpara(char *topara);对参数进行处理

bool chklogin(char *users, char *pwd);检查账号与口令

void help();命令列表

int mkdir();建立目录

int create();建立文件

int read();读取文件

int write();写入文件

int del();删除文件

int cd();切换目录

int dir();文件与目录列表

4、代码清单

#include "stdio.h"

#include "iostream.h"

#include "string.h"

#include "iomanip.h"

#define FILENAME_LENGTH 10 //文件名称长度

#define COMMAND_LENGTH 10 //命令行长度

#define PARA_LENGTH 30 //参数长度

//账号结构

typedef struct users

{

char name[8];

char pwd[10];

}users;

//文件结构

struct fnode

{

char filename[FILENAME_LENGTH];

int isdir;

int isopen;

char content[255];

fnode *parent;

fnode *child;

fnode *prev;

fnode *next;

};

//账号

users usrarray[8] =

{

"usr1","usr1",

"usr2","usr2",

"usr3","usr3",

"usr4","usr4",

"usr5","usr5",

"usr6","usr6",

"usr7","usr7",

"usr8","usr8",

};

fnode *initfile(char filename[],int isdir); void createroot();

int run();

int findpara(char *topara);

bool chklogin(char *users, char *pwd);

void help();

int mkdir();

相关文档
最新文档