欢迎来到天天文库
浏览记录
ID:56749976
大小:701.50 KB
页数:43页
时间:2020-07-07
《操作系统实验报告_实验四.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、北京航空航天大学计算机学院《操作系统》实验报告实验四[Linux]文件系统实验小组学号姓名小组组长温莎莎小组成员徐艺境小组成员李毅小组成员阎春龙2009年6月15日目录目录11.需求说明21.1.基本需求21.2.进阶需求22.设计说明32.1.结构设计32.2.功能设计32.2.1.重要的数据结构设计32.2.2.主要函数或接口设计43.测试和使用说明73.1.使用说明73.1.1.开发环境73.1.2.运行环境73.1.3.安装说明73.2.测试说明83.2.1.测试用例83.2.2.运行结果84.其他说明84.1.组内成员任务分工说明84.2.完成情况说明85.程序清单8
2、5.1.file_global85.2.file_system11需求说明1.1.基本需求准备一张FAT16格式的U盘(可以将U盘在Windows下直接格式化为FAT16格式),在Linux下编写一个文件系统管理程序,对U盘上的文件进行管理。具体要求如下:(1)设计并实现一个目录列表函数(类似于Linux中的Shell命令ls)。该函数只需要包含基本命令即可,不必支持许多选项。函数格式为:intud_ls();(2)设计并实现一个改变目录函数,即把当前目录切换到上一层目录或当前目录的子目录中(无需处理路径名),函数格式为:intud_cd(char*directory);本函数
3、假设U盘上已存在子目录。需要在文件系统中使用一个静态变量来代表当前目录。本函数要对当前目录变量进行操作,并且可以返回上一级目录,需要在文件系统中使用一个静态变量来代表当前目录的父目录。(3)设计并实现一个删除文件函数,该函数使用要删除的文件名(在当前目录中)作为参数,函数格式为:intud_df(char*name);该函数需要查找文件,遍历FAT中的链接,设置FAT中的每个簇项并将其标志为未使用,更新目录项。在删除的情况中,要注意文件的隐藏、只读和系统属性。任何具有这些设置的文件都不能删除。(4)设计并实现一个创建文件函数,该函数使用要创建的文件名和文件大小为参数,函数格式为
4、:intud_cf(char*filename,intsize);该函数需要遍历FAT表中的链接,找出FAT表中的能存放下文件大小的空簇,并更新目录项,可以用ud_ls()函数查询到创建的文件。1.2.进阶需求(1)增加删除目录的功能。设计并实现一个删除目录函数,通常需要先判断目录是否为空目录,若目录不为空,则需给出提示,并删除其包含的所有子目录和文件;若是空目录则可直接删除。函数格式为:intud_dd(char*directory);(2)增加对绝对路径和多级目录的支持。这里需要对输入的目录路径字符串进行解析,然后逐级查找目录。(3)对ud_cf()函数进行改进,使其可以向
5、文件中写入实际内容,并根据写入的内容计算文件实际大小。(4)对ud_ls()函数进行完善,增加对全部非根目录信息的读取(本实验中只读取了一个扇区的非根目录信息)。1.设计说明1.1.结构设计图2.1程序结构设计图1.2.功能设计1.2.1.重要的数据结构设计结构名称结构标识名称字段信息字段说明结构功能描述启动记录BootDescriptorunsignedcharOem_name[9]原始设备制造商名称以结构体形式存储FAT表中关于文件系统启动记录的信息intBytesPerSector每扇区的字节数intSectorsPerCluster每簇的扇区数intReservedSe
6、ctors保留的扇区intFATsFAT表个数intRootDirEntries根目录个数intLogicSectors扇区个数intMediaType介质类型intSectorsPerFAT每个FAT表的扇区数intSectorsPerTrack每个磁道的扇区数intHeads磁头个数intHiddenSectors隐藏扇区数根目录项Entryunsignedchar短文件名存储当前目录下short_name[12]的目录项信息unsignedcharlong_name[27]长文件名unsignedshortyear,month,day目录项创建日期unsignedshor
7、thour,min,sec目录项创建时间unsignedshortFirstCluster目录项首簇unsignedintsize目录项大小unsignedcharreadonly:1读写属性unsignedcharhidden:1隐藏属性unsignedcharsystem:1系统属性unsignedcharvlabel:1卷标属性unsignedcharsubdir:1子目录属性unsignedchararchive:1归档属性表2.1结构类型设计说明表1.1.1.主要函数或接口设计1.
此文档下载收益归作者所有