操作系统实验文件管理C++代码.doc
上传人:天马****23 上传时间:2024-09-15 格式:DOC 页数:19 大小:72KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

操作系统实验文件管理C++代码.doc

操作系统实验文件管理C++代码.doc

预览

免费试读已结束,剩余 9 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

精选范本,供参考!精选范本,供参考!精选范本,供参考!#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#include<stack>usingnamespacestd;#defineBLKSIZE512//数据块的大小#defineBLKNUM512//数据块的块数#defineINODESIZE32//i节点的大小#defineINODENUM32//i节点的数目#defineFILENUM8//打开文件表的数目//用户typedefstruct{charuser_name[10];//用户名charpassword[10];//密码}User;//i节点typedefstruct{shortinum;//文件i节点号charfile_name[10];//文件名chartype;//文件类型charuser_name[10];//文件所有者shortiparent;//父目录的i节点号shortlength;//文件长度shortaddress[2];//存放文件的地址}Inode;//打开文件表typedefstruct{shortinum;//i节点号charfile_name[10];//文件名shortmode;//读写模式(1:read,2:write,//3:readandwrite)}File_table;//申明函数voidlogin(void);voidinit(void);intanalyse(char*);voidsave_inode(int);intget_blknum(void);voidread_blk(int);voidwrite_blk(int);voidrelease_blk(int);voidpathset();voiddel(int);//用户命令处理函数voidhelp(void);voidcd(void);voiddir(void);voidmkdir(void);voidcreat(void);voidopen(void);voidread(void);voidwrite(void);voidclose(void);voiddelet(void);voidlogout(void);voidcommand(void);voidquit();//main.cpp文件//#include"head.h"//定义全局变量charchoice;intargc;//用户命令的参数个数char*argv[5];//用户命令的参数intinum_cur;//当前目录chartemp[2*BLKSIZE];//缓冲区Useruser;//当前的用户charbitmap[BLKNUM];//位图数组Inodeinode_array[INODENUM];//i节点数组File_tablefile_array[FILENUM];//打开文件表数组charimage_name[10]="data.dat";//文件系统名称FILE*fp;//打开文件指针//创建映像hd,并将所有用户和文件清除voidformat(void){inti;Inodeinode;printf("Willbetoformatfilesystem...\n");printf("WARNING:ALLDATAONTHISFILESYSTEMWILLBELOST!\n");printf("ProceedwithFormat(Y/N)?");scanf("%c",&choice);getchar();if((choice=='y')||(choice=='Y')){if((fp=fopen(image_name,"w+b"))==NULL){printf("Can'tcreatefile%s\n",image_name);exit(-1);}for(i=0;i<BLKSIZE;i++)fputc('0',fp);inode.inum=0;strcpy(inode.file_name,"/");inode.type='d';strcpy(inode.user_name,"/");inode.iparent=0;inode.length=0;inode.addr