linux二级文件,操作系统课程设计 linux下的二级文件系统word文档良心出品.docx

生课程设计报

实验课名称:操作系统 实验项目名称:文件系统设计

称:计算机科学与技术 级: 号: 名: 名:

2014 年—6_月 30日

、课程设计的目的 、课程设计的内容及要求

内容

要求

、实现原理.

四、关键算法实现流程图

流程图

关键算法

五、软件运行环境及限制

结果输出及分析

七.心得体会.

?课程设计的目的

本课程设计是学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让我

更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强了我的动手能

力。

二?课程设计的内容及要求

1 ?实验内容

通过一个简单的二级文件系统设计,加深对文件系统的内部功能以及内部实现的理解。要求模拟采

用二级目录结构的磁盘文件系统的文件操作,能实现以下几条命令,用输入命令来模拟用户程序中

调用的文件操作:

Login用户登录

Dir列文件目录(列出文件名、物理地址、保护码和文件长度)

Create创建文件

Delete删除文件

Op en打开文件

Close关闭文件

Read读文件

Write写文件

源文件可以进行读写保护

2 ?实验要求

文件系统管理中用到的数据结构有:

①首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形

式存放于磁盘,这样便于查找和修改。

…并以编号作为物理地址,在目②用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2

…并以编号作为物理地址,在目

录中进行登记。

三?实现原理

首先,实现Login用户登录,(用户名:Ihx密码:12358)必须登录成功才能进入文件系统进行查看,

进入后,通过树状展示文件目录(默认文件目录是\home\lhx\kefile ),利用命令行的方式进行注册、登录、 各种各样的文件操作。

四.关键算法实现流程图

流程图:

1?用户登录功能的实现

typ edef struct userMsg{

char loginName[20];

char logi nP asswd[20];

}UserMsg;

int login(char* name,char* p asswd){

UserMsg um;

int count = 0,size = sizeof(UserMsg),nres ,pres;

int fd = op en("/home/lhx/study/kefile/login.dat",O_RDONLY);

if(fd == -1){

return -1;

while(1)

if(read(fd,&u m,size) < size){

return -1;

nres = strc mp (name,um.loginName);

pres = strc mp(p asswd,um.login Passwd);

if(nres==0 && p res==0){

return 1;

if( nres == 0 && pres != 0){

return 0;

count++;

lseek(fd,SEEK_SET,size*count);

lseek(fd,SEEK_SET,0);

close(fd);

用户注册具体实现

int regist(char* name,char* p asswd){

UserMsg um;

int count = 0,size = sizeof(UserMsg);

int fd = op en("/home/lhx/study/kefile/login.dat",O_WRONLY|O_A PP END);

if(fd == -1){

return -1;

strc py(u m.loginName,name);

strc py(u m.logi nP asswd ,p asswd);

lseek(fd,SEEK_END,O);

count = write(fd,&u m,size);

if(count != size)

return -1;

return 1;

查看目录下文件

int listdtl(char* p name){

struct dirent** dlist;

int tmp ,count;

char fpath[50],*fname;

count = scandir( pname,& dlist,NULL,a Ip hasort);

if(count == -1)return -1;

printf("%10s\t%10s\t%10s\t%10s\t%10s\n","编号","类型","所有者 ID","大小文件名");

for(t mp = 0;t mp < count;t mp++)

struct stat st;

sp rintf(f

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值