linux文件管理作业,操作系统大作业 Linux文件管理系统(105页)-原创力文档

华南理工大学软件学院

2013级操作系统大作业实验报告

课程名称: 操作系统

任课老师:

作业题目: 简单二级文件系统

班 级:

学生姓名:

学 号:

目录

实验目12实验环实验内3

程序中使用的数据结构及符号说45源程序及注6程序运行时的初值和运行结

一、 实验目的

通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。

二、 实验环境

操作系统:Ubuntu 12.04 (Ubuntu/Linaro 4.6.3-1ubuntu5)

编译器: gcc 4.6.3

语言:C语言

三、 实验内容

FMSV1.0系统模拟了原生的文件系统,使用文本来当作磁盘,并使用了空闲块记录表,目录,i-node等数据结构来辅助文件系统的运作。

磁盘:一个名为blockDisk的文件,里面含有256个数据块。每个数据块的长度为1024,可存储1024个字符。

I节点:包含文件名,文件保护码,文件长度,文件存放位置。

目录:一个链表,记录了i节点。

空闲块记录表FBT:用于记录磁盘块使用情况,0表示未使用,1表示使用。

数据块:保存了文件的数据,一个数据块至多存放一个文件。

数据块使用情况:用于记录文件使用数据块的情况。存放在I 数组中。fat节点的.

文件:一个文件最多占用两个数据块,即长度至多为4028.

FMSV1.0系统支持的命令行:

login:登录

register:注册

open:打开文件

read:读取文件数据到屏幕

write:写文件,分为cover和append两种类型;cover是覆盖原数据,append是在不改变原始数据的基础上进行增加。

close:关闭文件

create:新增文件

delete:删除文件

exit:退出程序

help:帮助

四、 程序中使用的数据结构及符号说明

/*---------------结构定义-----------------*/

/*---------用户--------*/

typedef struct user

{

char account[15]; //账户最长为10

char password[15]; //密码最长为10,多出来的是为了方便运算

}user;

/*--------数据节点--------*/

typedef struct datanode //用于记录文件数据保存在哪个数据块的哪个范围

{

int num; //数据块号

int begin; //数据开始位置

int end; //数据结束位置

}datanode;

/*-------i节点--------*/

typedef struct inode

{

Char filename[30];

Int num;

char code[30]; //保护码

int size;

datanode fat[MAX_DATANODE_NUM];

int node _num;

}inode;

typedef struct dirEntry //用链表来记录I节点

{

inode ind;

struct dirEntry *next;

}dirEntry;

/*-------数据块--------*/

typedef struct block

{

char content[MAX_BLOCK_SIZE]; //数据块内容最大长度为 1025,预留最后一位用来存储'\0',

int num;

int offset; //记录当前数据的数量

}block;

五、 源程序及注释

head.h头文件

#include

#include

#include

#include

#define MAX_BLO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值