




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程设计工程三实验报告姓名:学号:学院:专业:指导教师:2014年*月*日工程三:文件系统一、教学内容模拟文件管理。设计并调试一个简单的文件系统,模拟文件操作命令的执行。深入了解主要文件操作命令的执行过程,掌握它们的根本实施方法。1.实现文件系统的根本功能设计一个支持n个用户的文件系统,每个用户可拥有多个文件。采用二级或二级以上的多级文件目录管理。对文件设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等。系统的外部特征应接近于真实系统,可以设置下述文件操作命令:建立文件、翻开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。通过键盘使用该文件系统,系统应当显示操作命令的执行结果。二、源程序与注释#include<stdio.h>//#include<string.h>#include<windows.h>#include<sys/stat.h>//文件属性#include<io.h>//文件常用库#include<direct.h>//创立删除目录voidmean(){printf("\t\t**********文件管理系统************\n");printf("\t\t1.创立目录\n");printf("\t\t2.删除目录\n");printf("\t\t3.创立文件\n");printf("\t\t4.设置权限\n");printf("\t\t5.写入文件\n");printf("\t\t6.读取文件\n");printf("\t\t7.删除文件\n");printf("\t\t8.复制文件\n");printf("\t\t9.翻开文件\n");printf("\t\t10.退出\n");printf("\t\t**********************************\n");}voidcreatecatalog(){inta;charname[10],choice;label:printf("请输入路径和目录名字例:C:/a\n");scanf("%s",name);getchar();a=mkdir(name);if(a==-1){printf("文件夹名相同\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("目录创立成功");printf("\n");}}voiddeletecatalog(){inta;charname[10],choice;label:printf("请输入要删除的目录路径和名字例:C:/a\n");scanf("%s",name);getchar();a=rmdir(name);if(a==-1){printf("目录不存在\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("目录删除成功");printf("\n");}}voidcreatefile(){inta;charname[10],choice;label:printf("请输入文件路径和名字");scanf("%s",name);getchar();//a=mkdir(name);a=creat(name,S_IWRITE);if(a==-1){printf("文件名相同\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("文件创立成功");printf("\n");}}/*voidopenfile(){FILE*fp;charname[10];printf("请输入要翻开的文件路径和名字");scanf("%s",name);getchar();if((fp=fopen(name,"r"))==NULL){printf("文件不存在\n");return;}elseprintf("翻开文件成功\n");}*/voidreadfile(){charch,name[10];FILE*fp;printf("请输入要读的文件路径和名字");scanf("%s",name);getchar();if((fp=fopen(name,"r"))==NULL){printf("文件不存在");return;}//openfile();ch=fgetc(fp);if(ch==EOF){printf("文本内容为空\n");}else{while(ch!=EOF){putchar(ch);ch=fgetc(fp);}printf("\n");fclose(fp);}}voiddeletefile(){FILE*fp;inta;charname[10],choice;label:printf("请输入要删除的文件路径和名字");scanf("%s",name);getchar();fp=fopen(name,"r");a=access(name,0);//获取文件状态if(a!=0){printf("文件不存在");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{a=access(name,02);//#defineW_OK2if(a!=0){printf("文件为只读文件");}else{fclose(fp);unlink(name);//删除一个文件,假设成功那么返回0,否那么返回-1printf("删除文件成功\n");}}}voidwritefile(){FILE*fp;charch,name[10],choice;label:printf("请输入文件路径和名字");scanf("%s",name);getchar();if((fp=fopen(name,"w"))==NULL){printf("文件不存在或只能读");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;elsereturn;}//ch=getchar();printf("请输入文件内容,#结束");ch=getchar();while(ch!='#'){fputc(ch,fp);//putchar(ch);ch=getchar();}printf("文件内容输入成功\n");getchar();fclose(fp);}/*voidcopyfile()//复制文件操作{charname[20],name1[20],name2[20];printf("请输入被复制的文件名");scanf("%s",name);getchar();printf("请输入复制后的文件名");scanf("%s",name1);getchar();strcpy(name2,"copy");//windowsstrcat(name2,name);strcat(name2,"");strcat(name2,name1);system(name2);//系统调用dos指令getchar();}*/voidcopyfile(){FILE*fp=NULL;FILE*fp2=NULL;inta;charch,name[50],name2[50],choice;printf("请输入要被复制的文件路径和名字");scanf("%s",name);label:printf("请输入新文件路径和名字");scanf("%s",name2);getchar();a=creat(name2,0);chmod(name2,S_IWRITE);if(a==-1){printf("文件夹名相同\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}fp=fopen(name,"r");//puts(name);puts(name2);if(fp)printf("....dddd");fp2=fopen(name2,"w");//printf("ll");if(fp2==0)printf("....");ch=fgetc(fp);//printf("kkk");while(ch!=EOF){//putchar(ch);fputc(ch,fp2);ch=fgetc(fp);}printf("复制文件成功");fclose(fp);fclose(fp2);printf("\n");}voidmodifyfile()/*修改文件权限*/{inta,x;charname[10],choice;label:printf("请输入要修改权限的文件名");scanf("%s",name);getchar();a=access(name,0);//获取文件的状态if(a!=0){printf("文件不存在\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("请选择:1--只读2--可写\n");while(1){scanf("%d",&x);if(x==1||x==2)break;elseprintf("输入错误!请重新选择");}if(x==1){a=chmod(name,S_IREAD);/*修改文件为"只读"*/printf("已经使<%s>只读\n",name);getchar();}elseif(x==2)/*修改文件为"只写"*/{a=chmod(name,S_IWRITE);printf("已经使<%s>可写\n",name);getchar();}}}voidopenfile(){inta;charname[10],name2[10],choice;label:printf("请输入要显示的目录");scanf("%s",name);/*显示目录操作*/getchar();a=access(name,0);if(a!=0){printf("目录不存在");printf("重新输入(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("文件翻开成功,文件信息如下:\n");strcpy(name2,"dir");/*复制dir命令*/strcat(name2,name);printf("%s",name2);system(name2);/*系统调用*/}}voidmain(){label:mean();inti;printf("请选择:");scanf("%d",&i);switch(i){case1:system("cls");createcatalog();break;//创立文件目录case2:system("cls");deletecatalog();break;//删除文件目录case3:system("cls");createfile();break;//创立文件case4:system("cls");modifyfile();break;//修改文件权限case5:system("cls");writefile();break;//写文件case6:system("cls");readfile();break;//读文件case7:system("cls");deletefile();break;//删除文件case8:system("cls");copyfile();break;//复制文件case9:system("cls");openfile();break;case10:exit(0);//关闭文件//case12:system("cls");openf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 室内设计承包合同书
- 投资合作意向协议书
- 优化办公效率实施方案大全
- 网络安全服务合作框架协议
- Unit 6 Section A (1a-2c) 教学设计2024-2025学年人教新目标八年级英语下册
- 鲁教版九年级化学第十单元《化学与健康》(同步教学设计)
- 第12课《台阶》教学设计-2023-2024学年统编版语文七年级下册
- 第24课《寓言四则》之《赫尔墨斯和雕像者》读写课教学设计 2024-2025学年 统编版(2024)七年级上册语文
- 北京市家庭居室装饰装修工程合同8篇
- 第八单元课题3金属资源的利用和保护教学设计-2024-2025学年九年级化学人教版(2024)下册
- 学校小卖部承包合同范文
- 普外腹腔镜手术护理常规
- 2025年湖南铁道职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- DB 63- T993-2011 三江源生态监测技术规范
- 2024年全国职业院校技能大赛(矿井灾害应急救援赛项)考试题库(含答案)
- 《预制高强混凝土风电塔筒生产技术规程》文本附编制说明
- 北京市东城区2025年公开招考539名社区工作者高频重点提升(共500题)附带答案详解
- 2025至2030年中国电子护眼台灯数据监测研究报告
- 2025年浙江省温州乐清市融媒体中心招聘4人历年高频重点提升(共500题)附带答案详解
- 2025夏季广东广州期货交易所招聘高频重点提升(共500题)附带答案详解
- 《兽医基础》练习题及参考答案
评论
0/150
提交评论