实验5Linux文件管理
一、实验目的
1.掌握Linux文件系统的基本原理、结构和实现方法
2.掌握Linux文件系统中文件的建立、打开、读/写、执行、属性等系统调用的使用
3.学会设计简单的文件系统并实现一组操作
4.通过实验学习文件系统的系统调用命令,提高对文件系统实现功能的理解和掌握
二、实验内容
设计并实现一个一级文件系统程序,要求实现以下功能:
1.提供文件创建/删除接口命令create / delete、目录创建/删除接口命令mkdir / rmdir、显示目录内容命令ls等。
2.创建的文件不要求格式和内容。
三、实验结果
1.程序源代码
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”
#include “install.h”
#include “log.h”
#include “name.h”
#include “open.h”
#include “rdwt.h”
#include “igetput.h”
struct hinode hinode[NHINO];
struct dir dir;
struct file sys_ofile[SYSOPENFILE];
struct filsys filsys;
struct pwd pwd[PWDNUM];
struct user user[USERNUM];
FILE *fd;
struct inode *cur_path_inode;
int user_id;
/*kkkkk*/
unsigned short usr_id;
char usr_p[12];
char sel;
char temp_dir[12];
main()
{
unsigned short ab_fd1,ab_fd2,ab_fd3,ab_fd4,i,j;
char *buf;
int done=1;
printf(“\nDo you want to format the disk(y or n)?\n”);
if(getchar()==’y’)
{
printf(“\nFormat will erase all context on the disk \n”);
printf(“Formating…\n”);
format();
printf(“\nNow will install the fillsystem,please wait…\n”);
install();
printf(“\n—-Login—-\nPlease input your userid:”);
scanf(“%u”,&usr_id);
printf(“\nPlease input your password:”);
scanf(“%s”,&usr_p);
/* printf(“\nsuccess\n”);*/
if(!login(usr_id,usr_p))
return;
while(done)
{
printf(“\n Please Select Your Operating\n”);
printf(” -1—-ls\n -2—-mkdir\n -3—-change dir\n -4—-create file\n -0—-Logout\n”);/* з?вт*/
sel=getchar();
sel=getchar();
switch(sel)
{
case ‘1’:
_dir();
break;
case ‘2’: