实验目的

了解FAT文件系统的磁盘存储结构;学会文件各项空间属性的计算方法;掌握文件系统用户命令的开发方法。

实验内容与记录

3.2 记录sd命令的结果并逐条解释含义

BytesPerSector:每扇区字节数。1.44MB 软盘每扇区有 512 字节。
SectorsPerCluster:每簇扇区数。EOS 创建的引导扇区将该域设置为 1。
ReservedSectors: 从第一个扇区开始的保留扇区数。在FAT12文件系统中,该域必须为 1。表示第一个扇区是保留扇区,即引导扇区。
Fats:FAT 表的数量。无论是哪种FAT文件系统,该域都应该为 2。
RootEntries: 根目录中包含的目录项的个数。每个目录项有 32 个字节。在 FAT12 文件系统中,该域应该为 224。
Sectors:扇区总数。1.44MB 软盘有 2880 个扇区。
Media:介质描述。EOS 创建的引导扇区将该域设置为 0xF0,表示软盘。
SectorsPerFat:每 FAT 表占用的扇区数。在 FAT12 文件系统中,该域应该为 9。
SectorsPerTrack:每磁道扇区数。1.44MB 软盘每磁道有 18 个扇区。
Heads:磁头数。1.44MB 软盘需要有 2 个磁头。
HiddenSectors:引导扇区之前的隐藏扇区数。1.44MB 软盘的隐藏扇区数0。
LargeSectors:扇区总数,域 Sectors 为 0 时使用。

First Sector of Root Directroy:根目录起始扇区号。起始扇区号为19号
Size of Root Directroy:根目录大小。根目录大小7168个字节
First Sector of Data Area:数据区起始扇区号。起始扇区号33号
Number O Clusters:数据区中簇的数量。簇的数量为2847
Free Cluster Count:空闲簇的数量。空闲簇的数量为2283
Used Cluster Count:已使用的簇的数量。已使用的簇的数量564

3.3 写出各项计算的方法或者公式,以及最后的输出截图
①fprintf(StdHandle, “First Sector of Root Directroy: %d\n”, pVcb->Bpb.ReservedSectors + pVcb->Bpb.Fats * pVcb->Bpb.SectorsPerFat);

②fprintf(StdHandle, “Size of Root Directroy : %d\n”, pVcb->Bpb.RootEntries * 32);

③fprintf(StdHandle, “First Sector of Data Area : %d\n”, pVcb->Bpb.ReservedSectors + pVcb->Bpb.Fats * pVcb->Bpb.SectorsPerFat + pVcb->Bpb.RootEntries * 32 / pVcb->Bpb.BytesPerSector);

④fprintf(StdHandle, “Number Of Clusters : %d\n\n”, (pVcb->Bpb.Sectors - (pVcb->Bpb.ReservedSectors + pVcb->Bpb.Fats * pVcb->Bpb.SectorsPerFat + pVcb->Bpb.RootEntries * 32 / pVcb->Bpb.BytesPerSector)) / pVcb->Bpb.SectorsPerCluster);

输出截图:

3.4 绘制dir命令的流程图

3.5 写出计算每个文件所占磁盘空间的方法,给出最后结果截图(代码已在后面给出,请大家自己输入并调试)
计算方法:

结果截图:

实验思考题

1、在ConsoleCmdScanDisk函数中扫描FAT表时,为什么不使用FAT表项的数量进行计数,而是使用簇的数量进行计数呢?而且为什么簇的数量要从2开始计数呢?

①对于FAT12文件系统,由于FAT表项有3072项,而实际的簇只有2847个,所以只能使用簇的数量进行计数。
②FAT表被划分为紧密排列的若干个表项,每个表项都与数据区中的一个簇相对应,由于FAT12文件系统规定FAT表的前两项有固定的用途,他们对应的0、 1两个簇号也就不能使用了,所以簇从2开始编号。

2、实验指导书的思考与练习的3—5选择一题设计代码,并写出相关代码,并对实验结果截图。(选作)

思考与联系3. 在FAT12文件系统中,删除一个文件只是将文件对应的目录项中文件名的第一个字节修改为0xE5,尝试修改“dir” 命令函数ConsoleCmdDir的源代码,不但能够输出现有文件的信息,还能够输出已经被删除文件的信息,被删除文件的信息可以包括文件名、大小、最后改写日期、起始簇号等信息。考虑一下这种删除文件方式的优点和缺点
修改ConsoleCmdDir的源代码:

运行结果截图:


 此时程序不但能够输出现有文件的信息,还能够输出已经被删除文件的信息,被删除文件的信息可以包括文件名、大小、最后改写日期、起始簇号等信息

优点:
①极大的加快了删除一个文件的速度,除一个文件只是将文件对应的目录项中文件名的第一个字节修改为0xE5
②保证了恢复文件时可以找到文件并迅速恢复文件,即寻找文件对应的目录项中文件名的第一个字节为0xE5
缺点:
①文件依然存在文件系统中,则会占用一定的存储空间。

望能对诸君有所帮助,切忌直接抄袭(觉得有用记得点赞呀~)

【此后无良辰】实验13 FAT12文件系统相关推荐

  1. 【此后无良辰】实验二 CPU部件实现之ALU和寄存器堆

    一. 实验目的 理解和掌握CPU中的算术逻辑运算部件(ALU)和寄存器堆(Register File)的工作原理,并使用Verilog和ModelSim进行设计和仿真. 二. 实验内容 使用Veril ...

  2. 合肥工业大学oj 算法实训(1)【此后无良辰】

    先暂时写必做30道题 只放思路和核心部分 (写的繁琐但易理解) 觉得有用的看官点个赞可好? (citrl + F 查找功能) 1.合法栈输出1060 记住数据输入是以EOF结束输入 基本思路 :回溯暴 ...

  3. 哈夫曼树制作压缩软件 【此后无良辰】

    哈夫曼树制作压缩软件 太爱bandzip了,在这里推荐这款压缩软件(我的是低仿) 以下为自己软件图片 要求: (1)压缩对象为外存任意格式任意位置的文件. (2)运行时,压缩原文件的规模应不小于5K. ...

  4. 给求职者提个醒,不要被无良公司骗了,关于“年终奖金”和“13/14薪制度“。...

    本文以13薪为例,14,15,16--薪等同. 在q群里发现有些同学不懂得"年底双薪"和"年终奖金"的概念.我简单的概括下: 双薪,或叫13薪,是一种制度. 奖 ...

  5. web前端开发技术实验与实践(第三版)储久良编著 项目13 设计新生课程简介

    web前端开发技术实验与实践(第三版)储久良编著 项目13 设计新生课程简介 实训三  项目13  设计新生课程简介 一.页面文字素材: 英语 基础英语.高级英语.报刊选读.视听.口语.英语写作.翻译 ...

  6. python培训骗局-python 无良培训忽悠骗局知多少?

    作者:前海之家 python 无良培训忽悠骗局知多少?-1.jpg (27.16 KB, 下载次数: 6) 2019-11-29 09:16 上传 这里专指哪些利用Python热,不问结果,骗培训的人 ...

  7. 实验13 简单FTP 程序设计

    实验13简单FTP 程序设计 实验目的:设计一个简单的FTP 客户端,支持用户登录,浏览目录列表,上传 文件和下载文件的功能. 实验内容: 程序的伪代码如下: (假定FTP 用户名为user_name ...

  8. java程序设计教程实验报告_java程序设计课程--实验报告-实验13.doc

    java程序设计课程--实验报告-实验13.doc 还剩 12页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: ...

  9. python骗局-python 无良培训忽悠骗局知多少?

    作者:前海之家 python 无良培训忽悠骗局知多少?-1.jpg (27.16 KB, 下载次数: 6) 2019-11-29 09:16 上传 这里专指哪些利用Python热,不问结果,骗培训的人 ...

  10. (转)关于无良培训机构的恶意抹黑疯狂Java的反驳(v1)

    近日有学生向我们反应CXXN网站上发现有恶意诋毁.抹黑疯狂Java的帖子 ,本来疯狂Java只想潜心钻研教学.尽力将最好教学效果奉献给广大Java学习者.但树欲静而风不止,传智X客一方面在baidu上 ...

最新文章

  1. paddle deepspeech v2 转 pytorch
  2. 英特尔傲腾内存linux,英特尔傲腾内存怎么样?intel傲腾内存优点和缺点你知道吗?...
  3. 分布式事务解决方案,Seata的基本配置和使用
  4. oracle重新生成控制文件,Oracle重建控制文件的语法
  5. 微服务-从设计到部署
  6. 使用Python迭代字符串中的每个字符
  7. Ubuntu 12.04忘记登录密码及修改密码
  8. mini139聊天软件
  9. 时间序列分析与非参数统计
  10. oracle增加dbf文件,oracle导入dbf文件工具下载|
  11. 无线破解攻击工具使用详解
  12. win7系统安装telnet服务器,Win7怎样安装telnet服务?
  13. 苹果手机通话没有声音是怎么回事_手机通话声音太小?只需要打开这个开关,声音变大好几倍...
  14. 韦东山老师的单片机核心课程学习笔记(一)
  15. RuntimeError: Physical devices cannot be modified after being initialized
  16. 中国互联网企业的研发之路——与腾讯研究院院长郑全战一席谈
  17. RT-Thread Studio ulog日志
  18. 中国的手机号码格式化/分类工具
  19. 丈八网安携手众智维 智能化高仿真网络靶场助力安全应急演练
  20. 南昌大学《概率论与数理统计》期末考试试卷真题A

热门文章

  1. Python3程序设计编程题解
  2. 水晶易表 oracle,水晶易表调用C#的WebService,返回数据集合的应用分析
  3. 基于Sentinel的高可用限流系统HASentinel设计及实现
  4. 请没有买房和买车的朋友一定认真的看一下(转)
  5. IV-18(前苏联ИВ-18)荧光管电子钟【Energy Pillar.能量柱】
  6. 网络打印机拒绝访问,无法连接处理方法汇总
  7. Android——Intent简介
  8. 服务器本地系统:网络受限,电脑本地连接受限制怎么办,教您解决电脑本地连接受限制...
  9. mysql binlog 回滚_Mysql误操作后利用binlog2sql快速回滚的方法详解
  10. 黑晓军 华中科技大学 博士 副教授