操作系统课程设计说明书-(文件管理).doc
《操作系统课程设计说明书-(文件管理).doc》由会员分享,可在线阅读,更多相关《操作系统课程设计说明书-(文件管理).doc(35页珍藏版)》请在咨信网上搜索。
中北大学 操作系统课程设计 说 明 书 学 院、系: 软件学院 专 业: 软件工程 学 生 姓 名: 学 号: 设 计 题 目: 基于Linux的模拟文件系统的设计与实现 起 迄 日 期: 指 导 教 师: 薛海丽 前言 简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS—DOS或OS/2等商品化操作系统来说是无法做到的。 Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障.在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E—mail等服务,还可作为路由器使用,利用IPCHAINS/IPTABLE网络治理工具可构建NAT及功能全面的防火墙。 Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。 目录 1需求分析3 1。1 功能介绍3 1。2 目的及意义5 1.2。1 目的5 1。2.2 意义6 1。3 设计成果7 2总体设计8 2.1功能介绍8 2。2模块关联9 3详细设计12 3。1用户结构12 3。2数据结构说明12 3。3主要功能的关键代码13 4测试及运行结果18 4.1 测试定义18 4。2 测试目的18 4.3 测试结果19 4。3.1 文件测试19 5心得23 1需求分析 1。1 功能介绍 基于Linux的模拟文件系统的设计与实现完成以下功能: (1)创建用户:手动的创建10个用户,都在界面上完成,输入用户名;每个用户最多可以保存10个文件。 (2)用户登录:手动的登录已经创建的用户,正确输入用户名即可成功登录。 (3)显示所有用户:首先会创建很多用户,为了清晰、便捷的查看用户,所以在界面上可以显示所有的用户,这一功能的实现,主要是针对忘记自己用户名的用户,可以通过查看全部用户来查找自己的用户名。 (4)创建二级文件目录(MD):手动的输入目录名称,(即设置主目录(MFD)和用户文 件目录(UFD))。 (5)显示目录:将用户创建的目录显示在界面上. (6)删除目录:手动输入目录的名称即可删除已经创建的目录。 (7)进入目录:进入目录内部,可以进行文件的各种操作。 (8)修改目录:在用户登录后,输入要修改的目录名称,对其进行修改,输入新的目 录名并保存. (9)建立一个文件(create):在目录中手动输入文件名,可以创建新的文件,在创建 的同时输入文件的保护码,对文件内容进行保护,防止信息泄露。 (10)打开全部文件(openall):将已经创建的文件夹全部显示在界面上. (11)删除一个文件(delete):手动输入已经创建的文件的名称,即可删除此文件. (12)写文件(write):手动的在文件中写入内容. (13)读文件(read):查看文件中的已经写入的内容. (14)移动文件:用户可以将某个目录下的文件移动到其它的目录中,只为了整理文件,便于查询,使用。 (15)改文件的保护码(change):手动修改文件的密码(保护码)。 基于以上的功能,可以使用户选择操作,模拟文件系统的设计与实现;此类功能都是在页面上手动操作完成。 1.2 目的及意义 1.2。1 目的 通过课程设计,加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。基于Linux的模拟文件系统的设计与实现,熟悉基本的网络命令以及他们的使用方法,体会Linux多用户的特点,熟悉网络配置文件的配置方法。本系统是基于linux平台运行在终端上的虚拟二级文件管理系统。模拟真正的文件管理系统,并采用用户登录机制对文件和目录进行创建,增加内容,修改,删除的操作。对于目录而言,可以进行创建删除新添文件的操作;对于文件而言,可以创建,修改,删除。删除目录时,同时删除相应目录下的文件以及文件中的内容。采用用户登录使得用户管理文件更方便, 并形成了二级的文件管理模式. 操作系统(OS)是重要的计算机系统软件,同时也是最活跃的学科之一,其发展极为迅速。它是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。它在计算机系统中占据了特别重要的地位;而其它的诸如汇编程序、编译程序、数据库管理系统等系统软件,以及大量的应用软件,都将依赖于操作系统的支持,取得它的服务。操作系统已成为现代计算机系统、多处理机系统、计算机网络、多媒体系统以及嵌入式系统中都必须配置的、最重要的系统软件。 课程设计是学习的总结,通过课程设计温习我们已经学到的知识并加以运用,还可以了解到其它的知识,来充实自己,充分掌握操作系统的基本原理及各方面知识。 1。2。2 意义 基于其低廉成本与高度可设定性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及行动装置等.在移动电话上,Linux已经成为与Symbian OS、Windows Mobile系统并列的三大智能手机操作系统之一;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TiVo数位摄影机使用了经过定制化后的Linux.此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能. Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统.Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件.它还包括带有多个窗口管理器的X—Window图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。 Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播.另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。 在Linux操作系统中实现文件的各种操作,即创建、删除、修改、写入、读取等。通过课程设计让我们进一步了解操作系统,学习操作系统的各方面知识,加深对操作系统的认识,温习课上学过的知识,明确操作系统的作用。可以在不同的角度来观察操作系统的作用。从一般客户的观点,可把操作系统看做是用户与计算机硬件系统之间的接口;从资源管理的观点看,则可把操作系统视为计算机系统资源的管理者.另外,操作系统实现了对计算机资源的抽象,隐藏了对硬件操作的细节,使用户能更方便地使用机器. 1.3 设计成果 基于Linux的模拟文件系统的设计与实现,实现了采用用户登录机制,可以查看文件信息,管理文件及文件夹。在界面中用户可以手动的进行操作,每一步都有操作成功或失败的提示,清晰的展示每一步的操作过程,用户可以方便的实现对文件的操作,例如:创建、修改、删除等. 经过几天的努力完成了基于Linux的模拟文件系统的设计与实现这一课题,按照具体的要求,将每个功能实现并附上温馨提示,主要的功能有:展示了添加用户、用户登录、创建二级目录、修改目录名、删除目录、显示全部目录、创建文件、修改文件名、删除文件、写入文件、读取文件、修改文件保护码等功能。 2总体设计 2。1功能介绍 本系统包括用户管理、目录管理、文件管理共3个模块。在用户管理模块中,包括创建用户,输入用户名;用户登录等功能。在目录管理模块中,包括创建二级文件目录,输入文件的目录名称;显示目录,输入文件目录的名字,显示出对应的目;删除目录;进入目录主要是为了操作目录内部的文件。文件管理模块,包括文件的创建,在进入目录后可以按照提示输入文件的名称,输入密码,创建新的文件并添加文件的保护码;打开一个文件,在目录中按照提示输入文件的名称,便可以打开目录中对应的文件;打开全部文件,进入目录后,按照提示输入相应的操作,即可打开本目录下所有的文件;删除一个文件,进入目录按照提示选择相应的操作,输入文件名称,即可删除此文件;写入文件,在目录中打开一个文件,写入内容;读取文件,在目录中打开文件,查看文件的内容.修改保护码,进入目录输入文件的名称,按照提示修改文件的保护码。形象展示见下图2。1 创建用户 用户登录 创建目录 显示目录 删除目录 创建文件 打开一个文件 打开全部文件 删除一个文件 写入文件 基于Linux的模拟文件系统的设计与实现 用户管理 目录管理 文件管理 读取文件 图2。1 2.2模块关联 n n 1 1 1 n 用户名 目录 用户 目录名 保护码 文件名 文件 文件内容 在系统中各个模块之间有着一定的联系,系统中创建10个用户,每一个用户可以创建多个目录,在目录中最多创建10个文件.用户与目录之间存在一对多的关系,目录与文件之间也存在一对多的关系,用户与文件之间也存在一对多的关系。具体描述见下图: 图2。2 显示 删除 打开 删除 保护码 读取 写入 用户登录 验证 创建目录 创建文件 用户退出 否 是 图2。3 是 否 是 否 是 否 遍历i节点区 要打开的文件是否存在 提示输入打开模式 将打开文件信息写入打开文件信息表 遍历打开文件表 文件是否已经打开 提示输入开始位置和读字节数 调用读块操作,读出块内字符 模式是否为可读 开始 结束 开始 结束 打开文件 读文件 是 否 遍历i节点区 要删除的文件是否存在 释放文件对应的i节点区 释放两个磁盘块 文件是否大于的一块 释放一个磁盘块 是 否 开始 结束 删除文件 图2。4 开始 遍历i节点区 是待删除目录吗? 遍历子目录 子目录为空吗? 是文件吗? 是空目录吗? 结束 删除目录或文件 是空目录吗? 删除目录 是 是 否 否 否 否 否 是 是 是 是 是 否 否 遍历i节点区 要创建的目录是否存在 是否有空的i节点 遍历i节点区 分配一个目录i节点 开始 结束 创建目录 图2。5 3详细设计 3.1用户结构 typedef struct user{ char name[10]; Content *con; struct user *next; }User; 本系统可以创建10个用户,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。 do{ printf(”输入新用户名:\n”); scanf("%s”,name); exist=0; head=user—〉next; while(head!=NULL){ if(strcmp(head—>name,name)==0){ exist=1; break; } head=head-〉next; } if(exist==1) printf("用户名已存在!\n请重新输入:"); }while(exist==1); 3。2数据结构说明 a) 文件结构链表 struct fnode { char filename[FILENAME_LENGTH]; int isdir; int isopen; char content[255]; fnode *parent; fnode *child; fnode *prev; fnode *next; }; b) 函数介绍 void zengjiayonghu();//增加新用户 void newfile(Content *con);//创建新文件 int display_files(Content *con);//展示所有文件 void dufile(Content *con);//读取文件 void writefile(Content *con);//写入文件 void shanchufile(Content *con);删除文件 void yidongfile(User *u,Content *con);//移动文件 int zhankaiallconcent(User *u);//展示所有文件 void newcontentname(Content *c,char name[]);//更改目录名称 void newconcent(User *u);//增加新目录 void shanchuconcent(User *u);//删除目录 void xiugaiconcentname(User *u);//修改目录名称 void change_filepassword(Content *con);//修改文件保护码 int readall_files(Content *con);//读取所有文件 3。3主要功能的关键代码 a) 创建文件 在用户成功的创建目录后,就可以创建文件了,创建新的文件时首先判断文件名是否已经存在,如果存在则提示重新输入,否则提示“请输入文件保护码!”,在输入文件保护码后,将创建新的文件成功. 关键代码: do{ exist=0; printf("请输入新文件名:”); scanf(”%s",f_name); strcat(f_name,tail); if(is_exist_file(con-〉file,f_name)) exist=1; if(exist==1) printf(”文件名已存在!\n"); }while(exist==1); printf(”请输入文件保护码:\n”); scanf(”%s”,password); q=fopen(f_name,"w"); fclose(q); while(file-〉next!=NULL) file=file—>next; new_f=(File *)malloc(sizeof(File)); strcpy(new_f—>name,f_name); strcpy(new_f->password,password); new_f—>next=NULL; file—〉next=new_f; con—>filenum++; printf("添加文件成功!\n”,f_name); } b) 读取文件 读取文件即查看文件中的内容,当输入要读取的文件名后,进行判断文件名称是否存在,若存在则打开文件,查看文件的内容,否侧提示“文件名不存在!”,重新选择读取的文件名,进行下一步的操作. 关键代码: strcat(name,tail); while(file!=NULL){ if(strcmp(name,file->name)==0){ find=1; break; } file=file->next; } if(find==0){ printf("文件名不存在!\n”); return; } c) 写入文件 在正常的操作中,用户创建文件主要是保存一些信息;在此系统中,用户创建文件后可以在文件中写入一些内容,发挥文件的作用。首先判断用户输入的文件名是否存在,再判断用户输入的保护码是否正确,正确进入文件后便可以进入文件,进行写操作。 关键代码: strcat(name,tail); while(file!=NULL){ if(strcmp(name,file—〉name)==0){ find=1; break; } file=file—〉next; } if(find==0){ printf(”抱歉,文件名不存在\n”); return; } do{ printf(”请输入保护码:”); scanf(”%s”,password); if(strcmp(password,file—〉password)==0) login=1; if(login==0) printf(”保护码错误!\n请重新输入:”); }while(login==0); printf("现在文件已经被打开了.。.\n"); write(name); printf(”\n文件%s写入成功!\n”,name); d) 移动文件 移动文件是很常用的操作,用户经常整理自己的文件,将一些文件移动到其它的目录下,此操作首先输入要移动的文件的名称,确认用户输入的文件存在后,再输入移动的目标目录,进行判断后将文件移动到此处,并提示“移动成功!"。 关键代码: do{ exist=1; printf("请输入你想要移动的文件名:”); scanf(”%s",name); strcat(name,tail); if(!is_exist_file(con—>file,name)) exist=0; if(exist==0) printf(”该文件名不存在!\n”); }while(exist==0); printf("移动中。。。\n”); file=con—>file; f=file—〉next; while(f!=NULL){ if(strcmp(f->name,name)==0) break; file=file—〉next; f=f—>next; } temp_f=f; file-〉next=f-〉next; printf("请输入您想要移动到的目标目录名: "); scanf(”%s”,c_name); c=u—〉con; while(c—>next!=NULL){ if(strcmp(c-〉name,c_name)==0) break; c=c->next; } f=c—〉file; while(f->next!=NULL) f=f—>next; f—>next=temp_f; temp_f->next=NULL; printf("移动成功!\n”); e) 删除文件 有时一些文件对用户来说是没有什么意义的,便可以将其删除,在用户登录成功后,进入目录选择删除文件操作,输入要删除的文件名,系统进行判断文件名是否存在,当文件存在时可以执行删除操作,提示“文件删除成功!”。 关键代码: if(display_files(con)==0) printf(”抱歉,你没有文件可删除!\n"); else{ do{ exist=1; printf("请输入您想要删除的文件名:”); scanf("%s”,name); strcat(name,tail); if(!is_exist_file(con—〉file,name)) exist=0; if(exist==0) printf("抱歉,该文件不存在!\n”); }while(exist==0); printf("文件删除中.。.”); file=con->file; f=file—>next; while(f!=NULL){ if(strcmp(f—〉name,name)==0) break; file=f; f=f—〉next; } f) 修改文件的保护码 保护码是文件的安全保护,现在的信息技术不断增强,也有很多人通过获取其它人的文件来盗用他人重要资料或信息,所以很多人采取密保来防止自己的文件内容泄露。有时人们会随意的设置自己的密码,可能在设置后需要修改更加严密的密码。再次我们设计了修改文件保护码,方便用户的更改。用户选择要修改的文件,系统判断文件名是否存在,若存在则提示输入原文件的保护码,再次进行判断保护码是否输入正确,最后输入新的保护码,并进行保存,提示“密码修改成功!". 关键代码: void change_filepassword(Content *con){ int login=0; char name[10]; char tail[]="。txt”; int find=0; char password[10]; char newpassword[10]; File *file=con->file—〉next; printf("请输入要修改保护码的文件名:”); scanf("%s”,name); strcat(name,tail); while(file!=NULL){ if(strcmp(name,file—>name)==0){ find=1; break; } file=file->next; } if(find==0){ printf(”啊噢。。.文件名不存在\n”); return; } do{ printf(”请输入原密码:”); scanf(”%s",password); if(strcmp(password,file->password)==0) login=1; if(login==0) printf("真是悲哀,原密码输入错误!\n请重新输入:”); }while(login==0); printf(”请输入新密码:"); scanf("%s”,newpassword); strcpy(file->password,newpassword); printf(”\n密码修改成功!\n"); } 以上是每个模块的具体的操作介绍并附加关键代码,关键代码对一个系统来说是非常重要的,有时候我们可以通过关键代码以及注释等来理解系统中的各种功能。在此系统中主要展示了添加用户、用户登录、创建二级目录、修改目录名、删除目录、显示全部目录、创建文件、修改文件名、删除文件、写入文件、读取文件、修改文件保护码等功能。 4测试及运行结果 4.1 测试定义 任何项目的开发成功都离不开测试,说明测试起着重要的作用.测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的去求或弄清楚预期结果与实际结果之间的差别.它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness)完全度(completeness)和质量(quality)的软件过程;是SQA的重要子域。 (1) 测试并不仅仅是为了找出错误,通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进; (2) 这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效果和有效性; (3) 没有发现错误的测试也是有价值的,完成的测试是评定软件质量的一种方法。 (4) 测试可以分为黑盒测试和白盒测试,测试的方法不同,测试的结果、重点也不相同,选择合适的测试方法对项目的承重有着重要的作用。 4.2 测试目的 如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或者以前出错比较多的位置。如果测试的目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。当然测试的目的不仅仅如此,也不会只针对某个部分进行测试,而忽略其它部分,测试必须要全面。 (1) 测试是为了发现错误而执行的过程; (2) 测试是为了证明程序有错,而不是证明程序无错误; (3) 一个好的测试用例是在于它能发现至今未发现的错误; (4) 一个成功的测试是发现了至今未发现的错误的测试。 4.3 测试结果 4.3。1 文件测试 用户的操作对象是文件,首先创建文件,当输入文件名时,测试文件名输入的是否正确,输入的文件名已经存在时,会出现提示信息;在文件中写入内容时,测试输入任何字符都可以,像普通的记事本一样;在读取文件时,可以正常的读取出文件中存在的内容;删除文件时,输入文件名,测试文件名是否输入正确,在文件名不存在时,界面出现提示信息;修改文件保护码,测试输入的初始文件保护码是否输入正确,显示提示信息,当输入正确时,可以对保护码进行修改,并修改成功。测试的结果是正确的。 成功创建文件界面设计:示图4。3.1 图4.3。1 写入文件界面设计:示图4。3。2 图4。3。2 读取文件界面设计:示图4。3.3 图4。3。3 删除文件界面设计:示图4。3。4 图4。3。4 修改文件保护码界面设计:示图4。3。5 图4。3。5 移动文件界面设计:示图4.3。6 图4。3.6 显示所有文件界面设计:示图4.3.7 图4。3。7 4。4 测试总结 经过测试,按照要求进行测试,确保功能的完整性,是否有不正确或遗漏了的功能;在接口上输入能否正确接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定厕所是数据,来检查程序是否都能产生正确的输出. 在系统开发的过程中,进行每一步的调试,确保每一个方法、语句都被执行到;开发后,针对具体的要求,进行测试,测试出系统中的功能能正常运行,切每一步不合理的操作,界面上都有提示信息,便于用户的操作、使用.经过测试,在此系统中的所有功能都是按照要求实现的,且都附有操作提示,避免用户操作失误而导致不必要的麻烦。 4。4 详细代码(在Linux环境下可运行成功) #include〈sys/stat.h〉 //调用系统函数 #include〈sys/types。h> #include〈stdio.h〉 #include〈unistd。h〉 #include〈dirent。h> #include〈stdlib。h〉 #include 〈errno.h〉 #include<fcntl。h> #include <string。h> struct Flie { int ed; //判断是否正存放文件 char f_name[8]; //文件名 char f_c[8]; //存放文件内容 int att ; // 文件属性0为只读 //用于指向文件内容模块 }fa[8],fg[8]; int x; //全局变量 /* 文件块数据结构 */ //typedef struct _FileTable //{ // char *FileName; //文件名 // int strat; //文件在磁盘存储空间的起始地址 // int length; //文件内容长度 // int maxlength; //文件的最大长度 // char FileKind[3]; //文件的属性——读写方式 //struct tm *timeinfo; //BOOL openFlag; //判断是否有进程打开了该文件 // struct _fileTable *next; //}FileTable; struct File1 { char *filename; //用户文件夹名 int id; //文件夹编号 }; struct File1 fileName[10]; //10个用户文件 int I=0; //全局变量,用来控制用户文件数目 int init(); //初始化界面 void check(); //密码认证 void fileopera(); //文件操作 int content(void); //目录操作 void add_content(void); //创建目录 void delete_content(); //删除目录 void createfile(); //创建文件操作 void deletefile() ; //删除文件的操作 void openfile() ; //打开文件操作 void writefile(); //写文件 void catalogue() ; //目录管理子程序 void modifyfile(); //修改属性操作 void copyfile(); // 复制文件操作 int show_content(int a,char argv[10]); //显示目录 int main(void) { while(1) { int n; printf(”******************************\n”); printf(”******* 1。目录管理 *********\n"); printf(”******* 2.文件管理 *********\n"); printf("******* 3.退 出 *********\n"); printf(”******************************\n”); printf(”请选择\n" ); scanf(”%d”,&n); switch(n) { case 1: content(); //调用目录管理函数 break; case 2: fileopera(); //调用文件管理函数 case 3: exit(0); default : printf("您的输入有误,退出!\n”); printf("\n"); } } } int content(void) { while(1) { int m; printf(”******************************\n”); printf("******* 1。创建目录 *********\n”); printf(”******* 2.删除目录 *********\n"); printf(”******* 3。显示目录 *********\n”); printf(”******* 4。退出 *********\n”); printf("******************************\n"); printf("请选择\n” ); scanf(”%d”,&m); switch(m) { case 1: add_content(); //创建目录 break; case 2: delete_content(); //删除目录 break; case 3: show_content(2,"/liwei"); //显示目录 break; case 4: //exit(0); //退出目录管理 return 0; default: printf("您的输入有误,退出!\n"); return 0; } } } void add_content(void) { char ptr[20]; int a; while(I〈=10){ if(I==0) {printf(”请输入您所要创建的主目录:\n”);scanf(”%s”,ptr); a = mkdir(ptr,S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH | S_IRWXO | S_IWOTH); if(a==0) {printf("主目录创建成功!\n”);fileName[I++]。filename=ptr;break;} else {printf(”目录创建失败!\n");break;} } printf(”请输入您所要创建的用户目录:\n"); scanf(”%s”,ptr); a = mkdir(ptr,S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH | S_IRWXO | S_IWOTH); if(a==0) {printf(”目录创建成功!\n");fileName[I++].filename=ptr;break;} else {printf(”目录创建失败!\n”);break;} //将目录保存 if(I〉10) printf(”已经有10个用户文件目录,不能再创建了!\n”); } } //删除目录 void delete_content() { DIR *dir; char ptr[20]; int a,i; printf(”请输入你要删除的目录:\n”); scanf(”%s",ptr); for(i=0;i〈10;i++) { if((strc- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 说明书 文件 管理
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文