欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    操作系统实验文件管理C++代码Word下载.docx

    • 资源ID:3459205       资源大小:20.53KB        全文页数:31页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统实验文件管理C++代码Word下载.docx

    1、write, / 3:read and write) File_table;/ 申明函数void login(void);void init(void);int analyse(char *);void save_inode(int);int get_blknum(void);void read_blk(int);void write_blk(int);void release_blk(int);void pathset();void del(int);/ 用户命令处理函数 void help(void);void cd(void);void dir(void);void mkdir(void

    2、);void creat(void);void open(void);void read(void);void write(void);void close(void);void delet(void);void logout(void);void command(void);void quit();/main.cpp文件/#include head.h/定义全局变量 char choice;int argc; / 用户命令的参数个数char *argv5; / 用户命令的参数int inum_cur; / 当前目录char temp2*BLKSIZE; / 缓冲区User user; / 当

    3、前的用户char bitmapBLKNUM; / 位图数组Inode inode_arrayINODENUM; / i节点数组File_table file_arrayFILENUM; / 打开文件表数组char image_name10 = data.dat; / 文件系统名称FILE *fp; / 打开文件指针/创建映像hd,并将所有用户和文件清除void format(void) int i; Inode inode; printf(Will be to format filesystem.n);WARNING:ALL DATA ON THIS FILESYSTEM WILL BE LO

    4、ST!nProceed with Format(Y/N)? scanf(%c, &choice); getchar(); if(choice = y) | (choice = Y) if(fp=fopen(image_name, w+b) = NULL)Cant create file %sn, 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.i

    5、parent = 0; inode.length = 0; inode.address0 = -1; inode.address1 = -1; fwrite(&inode, sizeof(Inode), 1, fp); inode.inum = -1; 31; BLKNUM*BLKSIZE;0 fclose(fp); / 打开文件user.txt if(fp=fopen(user.txt, w+Filesystem created successful.Please first login! return ;/ 功能: 用户登陆,如果是新用户则创建用户void login(void) char

    6、 *p; int flag; char file_name10 = do login: gets(user_name);password: p=password; while(*p=getch() if(*p = 0x0d) *p= /将输入的回车键转换成空格 break; printf(* /将输入的密码以号显示 p+; flag = 0; if(fp = fopen(file_name, r+nCant open file %s.n, file_name);This filesystem not exist, it will be create! format(); login(); wh

    7、ile(!feof(fp) fread(&user, sizeof(User), 1, fp); / 已经存在的用户, 且密码正确 if(!strcmp(user.user_name, user_name) & !strcmp(user.password, password) / 已经存在的用户, 但密码错误 else if(!strcmp(user.user_name, user_name)nThis user is exist, but password is incorrect.n flag = 1; if(flag = 0) break; while(flag); / 创建新用户 if

    8、(flag = 0)nDo you want to creat a new user?(y/n): gets(temp); strcpy(user.user_name, user_name); strcpy(user.password, password);nN 将所有i节点读入内存void init(void) if(fp = fopen(image_name, r+b / 读入位图 BLKNUM; bitmapi = fgetc(fp); / 显示位图 / 读入i节点信息 INODENUM;inode_arrayi, sizeof(Inode), 1, fp); / 显示i节点 / 当前目

    9、录为根目录 inum_cur = 0; / 初始化打开文件表 FILENUM; file_arrayi.inum = -1; 分析用户命令, 将分析结果填充argc和argv/ 结果: 0-13为系统命令, 14为命令错误int analyse(char *str) char temp20; char *ptr_char; char *syscmd=helpcddirmkdircreateopenreadwrite, closedeletlogoutclear,formatquit; argc = 0; for(i = 0, ptr_char = str; *ptr_char != ptr_c

    10、har+) if(*ptr_char ! ) while(*ptr_char ! & (*ptr_char ! tempi+ = *ptr_char+; argvargc = (char *)malloc(i+1); strncpy(argvargc, temp, i); argvargci = argc+; i = 0; if(*ptr_char = ) break; if(argc != 0) (i 512) add1 = inode_arraynum.address1; fseek(fp, BLKSIZE+INODESIZE*INODENUM +add0*BLKSIZE, SEEK_SE

    11、T); ch = fgetc(fp); for(i=0; len) & (ch !) & 512); tempi = ch; if(i = 512) fseek(fp,BLKSIZE+INODESIZE*INODENUM+add1*BLKSIZE, SEEK_SET); for(; tempi = 将temp的内容输入hd的数据区void write_blk(int num) fseek(fp, BLKSIZE+INODESIZE*INODENUM+add0*BLKSIZE, SEEK_SET); (ilen)&(tempi!=)&(i 0)& (inode_arrayi.type= (ino

    12、de_arrayi.iparent=inum_cur)&strcmp(inode_arrayi.file_name,argv1)&strcmp(inode_arrayi.user_name,user.user_name) if(i = INODENUM) This directory isnt exsited.n inum_cur = i; 显示当前目录下的子目录和文件(dir)void dir(void) int dcount=0,fcount=0; short bcount=0;= 1)Command dir must have one args. n / 遍历i节点数组, 显示当前目录下

    13、的子目录和文件名 0) & (inode_arrayi.iparent = inum_cur)& ! if(inode_arrayi.type = dcount+;%-20s, inode_arrayi.file_name); else fcount+; bcount+=inode_arrayi.length;%-20s%12d bytesn, inode_arrayi.file_name,inode_arrayi.length);n %d file(s)%11d bytesn,fcount,bcount); %d dir(s) %11d bytes FreeSpacen,dcount,1024*1024-bcount); 在当前目录下创建子目录(mkdir dir1)void mkdir(void)command mkdir must have two args. n / 遍历i节点数组, 查找未用的i节点 if(inode_arrayi.inum 0) break;


    注意事项

    本文(操作系统实验文件管理C++代码Word下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开