如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因)

1.实验目的:学习fat文件系统的组成

能够将您自己的程序应用于系统

熟悉DD、mount、umount等

2 需求描述

2.1基本要求:设计并实现目录列表功能,以显示当前目录中包含的文件信息

设计并实现了文件删除功能。当前目录中要删除的文件名用作删除指定文件的参数。请注意文件的隐藏、只读和其他系统属性

设计并实现文件创建功能,并使用要创建的文件名和文件大小作为参数来创建新文件

2.2改进需求,增加目录创建功能

增加删除目录功能:通常需要判断目录是否为空。如果目录不为空,则需要给出提示并删除其中包含的所有子目录和文件;如果目录为空,可以直接删除

添加对绝对路径和多级目录的支持:在这里,您需要解析输入目录路径字符串,然后逐级查找目录

对于UD:_函数,CF函数已得到改进,因此它可以将实际内容写入文件,并根据写入的内容计算文件的实际大小

对于UD:_ Ls,改进了函数以增加所有非根目录信息的读取

2.3完成

完成以下功能:

程序可以正常运行

您可以执行CF、DF、RM、MKDIR、rmdir、CD、LS和其他命令

CF可以通过外部输入更改内容,并支持输入重定向

在非根目录中,您可以找到该目录占用的所有集群

RM可以支持-R参数

支持所有指令解析和多级路径

支持读取和访问系统时间

已经纠正了几个错误

3 设计说明

3.1基本要求的实施说明

3.1.1程序的正常运行

首先,使用DD命令创建一个空文件。命令如下。

ad840ab0f9f2df44f943c82432e4ccae.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

由于虚拟机的问题,使用了128M。无法读取512M或以上FAT16格式文件中的引导目录,并且无法执行测试。因此,所有实验均在128M的高度进行。

并且根据引导目录的内容改变头文件中的内容,从而可以正常启动。

4daffc201b299d9558c2014722574d92.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

3.1.2基本指令的执行

040fefd73ed2f728d26c40f09df5d256.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

如上所述,可以正常实现LS、CF和DF。但是,原来的时间有问题,我再次修复了它。

3.2改进要求说明

3.2.1能够执行CF、DF、RM、MKDIR、rmdir、CD、LS和其他指令

5afa028ca46928522d4404515fc7d3e6.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

首先,运行LS命令。现在,在根目录中创建一个文件。那么成功,DF,成功。然后,运行MKDIR命令创建一个文件夹。成功输入文件夹,在其中创建文件夹,然后跳出。

93241e13194fd14c301a1bc8ab5928a2.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

3.2.2多级目录标识

8a70ceef8937fde5713f3f1a6e2e2e79.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

用于识别多级目录的各种命令的核心代码如上所述。其思想是跳转到目录以运行目标指令。如果无法跳转,将出现提示,指示没有目录。如果成功跳转并创建,则无论创建是否成功,都将跳回原始目录。跳转和跳回功能的屏幕截图如下。

a332fc03a05885757db3c30d9a59fd90.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

实施情况如下:

9c2f225e945ac498ed662cdee77b6315.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

利用上述效果,可以识别两种绝对路径和相对路径。并能成功完成创建目录、删除目录、创建文件、删除文件等功能。

3.2.3改进的FD_ Ls功能:

更改描述

原始FD_当查找子目录时,LS函数将仅查找一个扇区的内容。我们制造的USB磁盘大小为128M。因此,当我们在子目录中写入超过64个文件时,LS函数将无法显示超过64个的文件。因此,我对FD_不感兴趣。在LS函数中查找子目录的函数已修改。上半部分是原始代码。我在底部添加了一个while循环,以确定是否找到了最后一个扇区。如果是,跳出循环。如果没有,则继续遍历找到的下一个扇区,以输出该扇区中是否有文件,直到找到最后一个扇区。

4a12495ad3d21fa540f72cff5ed8c093.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

遇到的问题

f1ef8971170413488f47d6832b0ec142.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

CF的改进

在本实验中,我们有两种改进的CF方法,第一种是通过外部输入添加文件内容,第二种是通过内部文件输入添加文件属性。

其效果如下:

5d5a11b093f208058d451fd53d0c6f94.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

b12d90f3f84b29a22df0970b7cedb474.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

2b3e96b971129e66c1a4cf1c9e5e6148.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

上述内容的实现方法是将实值写入找到的空集群的对应数据区。

为了检查文件内容是否正确并获得更完美的实验结果,添加了cat指令。

abb9a894d0d7bcb5fbc7671c598fe41f.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

如图所示,CF创建的文件显示正确。

测试的优化设置

为了测试LS是否能够成功访问多个集群的文件,手动创建文件太慢,因此添加了bat命令以帮助测试。

输入两个整数创建一个文件,文件名为相应的间隔,大小始终为4。

0630f04ea7993ecef33fb5a75e49afd9.png 如果无法跳转,将出现提示,指示没有目录(生成的目录不能跳转)(生成不了目录的原因) 热门话题

如图所示,测试后可以访问多个集群的内容。

一个文件夹是32*512,一个集群是4*512,即一个文件夹占用8个集群。一个集群可以有64个目录项目,超过64个项目表示改进成功

LS的改进

由于以前的LS太长,当目录中有许多文件时不容易观察,因此它被更改为与原始系统相同的LS显示,-L是原始LS。

4 收获与思考

收到PPT后的第一周,我不知所措,不知道该怎么办。经过与同学们的学习和讨论,我逐渐明白我们需要做什么。然后按照书中的步骤一步一步地学习,检查是否可行,最后对脂肪有一定的了解。然后接收第二ppt。Ppt讨论了如何改进需求。调整误差花费了很长时间,并做出了许多改进。经过大家的努力,最终的产品效果还是非常令人满意的。


1c 已经纠正了几个错误

[天天新闻]

发表评论

Copyright 2002-2022 by 爱雅斋字画(琼ICP备2022001899号-3).All Rights Reserved.