资源描述:
《实验5 Linux文件管理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验5Linux文件管理一、实验目的1.掌握Linux文件系统的基本原理、结构和实现方法2.掌握Linux文件系统中文件的建立、打开、读/写、执行、属性等系统调用的使用3.学会设计简单的文件系统并实现一组操作4.通过实验学习文件系统的系统调用命令,提高对文件系统实现功能的理解和掌握二、实验内容设计并实现一个一级文件系统程序,要求实现以下功能:1.提供文件创建/删除接口命令create/delete、目录创建/删除接口命令mkdir/rmdir、显示目录内容命令ls等。2.创建的文件不要求格式和内容。三、实验结果1.程序源
2、代码main.cpp#include#include#include#include#include"structure.h"#include"creat.h"#include"access.h"#include"ballfre.h"#include"close.h"#include"delete.h"#include"dir.h"#include"format.h"#include"halt.h"#include"iallfre.h"#inc
3、lude"install.h"#include"log.h"#include"name.h"#include"open.h"#include"rdwt.h"#include"igetput.h"structhinodehinode[NHINO];structdirdir;structfilesys_ofile[SYSOPENFILE];structfilsysfilsys;structpwdpwd[PWDNUM];structuseruser[USERNUM];FILE*fd;structinode*cur_path_i
4、node;intuser_id;/*kkkkk*/unsignedshortusr_id;charusr_p[12];charsel;chartemp_dir[12];main(){unsignedshortab_fd1,ab_fd2,ab_fd3,ab_fd4,i,j;char*buf;intdone=1;printf("Doyouwanttoformatthedisk(yorn)?");if(getchar()=='y'){printf("Formatwilleraseallcontextonthedis
5、k");printf("Formating...");format();printf("Nowwillinstallthefillsystem,pleasewait...");install();printf("----Login----Pleaseinputyouruserid:");scanf("%u",&usr_id);printf("Pleaseinputyourpassword:");scanf("%s",&usr_p);/*printf("success");*/if(!l
6、ogin(usr_id,usr_p))return;while(done){printf("PleaseSelectYourOperating");printf("-1----ls-2----mkdir-3----changedir-4----createfile-0----Logout");/*зЂвт*/sel=getchar();sel=getchar();switch(sel){case'1':_dir();break;case'2':printf("pleaseinputdirnam
7、e:");scanf("%s",temp_dir);mkdir(temp_dir);break;case'3':printf("pleaseinputdirname:");scanf("%s",temp_dir);chdir(temp_dir);break;case'4':printf("pleaseinputfilename:");scanf("%s",temp_dir);ab_fd1=creat(2118,temp_dir,01777);buf=(char*)malloc(BLOCKSIZ*6+5);write(ab
8、_fd1,buf,BLOCKSIZ*6+5);close(0,ab_fd1);free(buf);break;case'0':logout(usr_id);halt();done=0;default:printf("error!Nosuchcommand,pleasetryagain.Oryoucanasky