- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计报告:Linux二级文件系统设计
专 业:计算机科学与技术
学 号:********
姓 名:***
提交日期:2013-3-8
【设计目的】
(1)本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能和内部实现。
(2)结合数据结构、程序设计、计算机原理等课程的知识,设计一个二级文件系统,进一步理解操作系统。
(3)通过分对实际问题的分析、设计、编程实现,提高学生实际编程的能力“filesystem”,”w+b”); //fd是FILE指针类型,w便是写方式,b表示二进制
fseek(fd, specific_area,SEEK_SET);// fd是文件指针;specific_area为整形,
// 为需要入pInode的位置
fwrite(pInode, sizeof(inode), 1,fd); // 写入pInode信息
2、原理算法
本文件系统采用两目录,其中第一对应于用户,第二对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。
【设计思路】
1、数据结构
#define MAXNAME 25 /*mfdname,ufdname,filename的最大长度*/
#define MAXCHILD 50 /*最大的子文件个数*/
#define MAX (MAXCHILD*MAXCHILD) /*物理地址计数fpaddrno的最大长度*/
typedef struct /*结构体OSFILE(文件)*/
{
int fpaddr; /*文件的物理地址号0,1,2...*/
int flength; /*文件的长度*/
int fmode; /*文件模式:0-Read Only;1-Write Only;2-Read and Write;3-protrcted;*/
char fname[MAXNAME]; /*文件名*/
} OSFILE;
typedef struct /*结构体OSUFD(用户目录)*/
{
char ufdname[MAXNAME]; /*ufd的名字*/
OSFILE ufdfile[MAXCHILD]; /*ufd自己的文件*/
}OSUFD;
typedef struct /*结构体OSUFDLOGIN(用户注册)*/
{
char ufdname[MAXNAME]; /*ufd的名字*/
char ufdpword[8]; /*ufd的密码*/
} OSUFD_LOGIN;
typedef struct /*文件打开模式*/
{
int ifopen; /*打开情况:0-close,1-open*/
int openmode; /*读写模式0-read only,1-write only,2-read and write*/
}OSUFD_OPENMODE;
OSUFD *ufd[MAXCHILD]; /*ufd及ufd自己的文件(指针型)*/
OSUFD_LOGIN ufd_lp; /*建立了一个OSUFD_LOGIN型的 ufd_lp*/
int ucount=0; /*mfd的ufd的个数*/
int fcount[MAXCHILD]; /*ufd自己的文件个数*/
int loginsuc=0; /*是否成功登陆,1成功*/
char username[MAXNAME]; /*记录注册的用户名*/
char dirname[MAXNAME];/*记录文件当前的目录*/
int fpaddrno[MAX]; /*记录文件的物理地址num*/
OSUFD_OPENMODE ifopen[MAXCHILD][MAXCHILD]; /*创建一个OSUFD_OPENMODE型的数组用于记录每个文件的打开情况和读写模式*/
FILE *fp_mfd,*fp_ufd,*fp_file_p,*fp_file; /*定义FILE * 型的文件指针,用于读文件*/
2、主要的函数说明
void LoginF() /*用户注册登录*/
void DirF() /*显示文件系统的所有文件*/
void CdF() /*改变路径*/
void CreateF() /*创建文件*/
void DeleteF() /*删除文件*/
void ModifyFM() /*改变文件模式*/
void OpenF() /*打开文件*/
void CloseF() /*关闭文件*
文档评论(0)