FAT16文件系统

FAT16

大端存储:高位字节放在低地址端,低位字节放在高地址端。

小端存储:低位字节放在低地址端,高位字节放在高地址端。

举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:

  • 大端模式:

低地址 -----------------> 高地址
0x12 | 0x34 | 0x56 | 0x78

  • 小端模式:

低地址 ------------------> 高地址
0x78 | 0x56 | 0x34 | 0x12
可见,大端模式和字符串的存储模式类似。

  • FAT16 文件系统:FAT的全称为 File Allocation Table,即“文件分配表”。FAT 分为16位与32位两个不同的版本。如果只说“FAT”,则专指FAT16文件系统。FAT16 文件系统的兼容性好,可以被 MS-DOS、 Windows 及其他多种操作系统识别,但是由于不支持大于 2GB 的硬盘, 现在已被淘汰。FAT16 系统一般在 U盘、MMC卡、SD 卡以及一些小型存储设备上使用比较多,把这些小型存储设备统称为存储卡。
  • 文件系统的缺点:磁盘利用效率低
  • 因为在 Windows 系统中,磁盘文件的分配是以“簇”为单位的,一个簇只分配给一个文件使用,不管 FAT16 这个文件占用整个簇容量的多少。由于这个原因,即使一个很小的文件,它也要占用了一个簇,剩余的空间便全部闲置在那里,形成了磁盘空间的浪费。由于分区表容量的限制,FAT16 支持的分区越大,磁盘上每个簇的容量也越大,造成的浪费也越大。
  • 【注意】:分区格式也被称为“文件系统”,例如,FAT16、FAT32、NTFS、 EXT2、EXT3等都属于文件系统。每个分区必须使用一种文件系统,才能存取数据。没有文件系统的分区是无法使用的。

1. 存储结构

FAT16 文件系统把存储卡的划分为几个区,包括 MBR 扇区、DBR 扇区、保留扇区、FAT表1、FAT表2、根目录和数据区,具体结构如图所示,其实保留扇区包含 MBR 扇区,这里把 DBR 标志出来是为了强调它的重要性。

image

2. DBR 扇区

DBR区(DOS BOOT RECORD)即操作系统引导记录区的意思,也称为引导扇区或启动扇区。它记录了存储卡的所有重要信息,一共512个字节,其结构如图

image

字节位移字段长度(字节)字段名称
0x003跳转指令(Jump Instruction)
0x038OEM ID
0x0B25BPB
0x2426扩展BPB
0x3E448引导程序代码(Bootstrap Code)
0x01FE4扇区结束标识符(0xAA55)

3. FAT 表总览

image

4. FAT 初始化

image

5. 创建文件

image

6. 读文件

image

7. 写文件

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/555021.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年软件开发行业的薪资水平在下滑的原因?

下降的原因主要包括: 科技行业竞争加剧:随着科技行业竞争的加剧,企业为了压缩成本,开始降低程序员的薪资水平。 人才供应过剩:在计算机成为热门学科的同时,社会上出现了对IT业泡沫和虚假繁荣的质疑。大量…

【ROS2笔记七】ROS中的参数通信

7.ROS中的参数通信 文章目录 7.ROS中的参数通信7.1使用CLI工具调整参数7.2参数通信之rclcpp实现7.2.1创建节点7.2.2rclcpp参数API Reference ROS2中的参数是由键值对组成的,参数可以实现动态调整。 7.1使用CLI工具调整参数 启动turtlesim功能包的环境 ros2 run …

java算法day56 | 动态规划part15 ● 392.判断子序列 ● 115.不同的子序列

392.判断子序列 动规五部曲: 确定dp数组(dp table)以及下标的含义 dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。确定递推公式 在确定递推公式的时候,…

第21天:信息打点-公众号服务Github监控供应链网盘泄漏证书图标邮箱资产

第二十一天 一、开发泄漏-Github监控 1.短期查看 1.密码搜索 根据攻击目标的域名在GitHub上进行搜索密码,如果目标网站的文件与搜索到的源码相关,那就可以联想目标网站是否使用这套源码进行开发 原理就是开发者在上传文件的时候忘记更改敏感文件或者…

探索VR数字展厅,对企业未来展示新模式

在数字化浪潮的推动下,企业展示也在经历着一场革命,VR数字展厅正在以一种全新的方式重塑我们的生活和工作空间,不仅重塑了客户的观展体验,也为企业营销打开了新的渠道。 VR数字展厅作为实体展厅的数字化延伸,正以其沉浸…

SpringBoot框架——7.整合MybatisPlus

这篇主要介绍Springboot整合MybatisPlus,另外介绍一个插件JBLSpringbootAppGen,以及一个经常用于测试的基于内存的h2数据库。 Mybatisplus是mybatis的增强工具,和tk-mybatis相似,但功能更强大,可避免重复CRUD语句,先来…

JWT的使用

0、JWT原理 header JWT第一部分是header,header主要包含两个部分,alg指加密类型,可选值为HS256、RSA等等,typJWT为固定值,表示token的类型。 Payload JWT第二部分是payload,payload是token的详细内容,一般包括iss (发行者), exp (过期时间),…

速看!2024中国(厦门)国际康复医疗展览会

2024中国(厦门)国际康复医疗展览会 2024 China (Xiamen) International Rehabilitation Medical Exhibition 时 间:2024年8月13-15日 August 13-15, 2024 地 点:厦门国际会展中心 Xiamen International Conference & Exh…

分布式调度器timer和spring task

1. Timer(了解) 一、Timer使用方式 Task1 public class Task1 extends TimerTask {Overridepublic void run(){System.out.println("com.aware.Task run");} } Task2 public class Task2 extends TimerTask {Overridepublic void run(){…

外包干了18天,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能…

【研发管理】产品经理知识体系-产品创新管理

导读: 产品创新管理对企业的发展具有深远的影响,它不仅是企业保持竞争优势的关键,也是推动企业持续稳定发展的重要动力。因此,企业应高度重视产品创新管理,并采取有效的策略和方法来推动产品创新活动的开展。对于产品经…

开关原理(验证码开关、IP开关)

开关原理(验证码开关) 我们的项目具有验证码功能,旧版不支持关闭,新版已经支持关闭了。 我们打开页面“参数管理”,所谓参数管理,就是在系统运行起来的时候,可以动态修改一些值,这些…

java体育馆使用预约平台的设计与实现(springboot+mysql源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的体育馆使用预约平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 体育馆使用预约平台的…

IDEA中SVN 的使用

文章目录 前言一、svn安装二、IDEA集成SVN总结 前言 svn可以老牌的代码仓库了 说实话svn还是和git无法相比的,毕竟git有本地仓库的概念,可以很好的处理冲突,然而svn是没有本地仓库的概念的,所以只能拉取别人的代码,然后处理冲突后,才能提交代码; 由于最近的工作换成了用svn仓…

找不到api-ms-win-crt-runtime-l1-1-0.dll文件5种解决方法

在日常使用计算机的过程中,我们时常会遭遇各类意想不到的问题,其中之一就是“api-ms-win-crt-runtime-l1-1-0.dll丢失”。这个错误通常发生在Windows操作系统中,它表示一个动态链接库文件丢失或损坏。这个问题可能会导致某些应用程序无法正常…

LLamaSharp加载llama.cpp转化好的模型

新建.net8控制台项目 安装依赖包 LLamaSharp和LLamaSharp.Backend.Cpu 准备好转化好的模型 没有的话参考这篇文章https://blog.csdn.net/qq_36437991/article/details/137248622 编写代码 using LLama; using LLama.Common; using LLama.Native;namespace llamasharpstu…

【Java开发指南 | 第十三篇】Java条件语句

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 if 语句if...else 语句if...else if...else 语句嵌套的 if…else 语句switch 语句 Java 中的条件语句用于根据条件来执行不同的代码块。条件语句允许程序根据表达式的结果选择性地执行代码。 条件语句分为if 语…

中拔出溜的公司如何实施DEVOPS

虽然推进起来很艰难,但在这类公司也并非一无是处:只要让各方尤其是领导曾看到了成效,大范围铺开很容易,你也非常容易因此变得出众。 0. 标题 1. 中拔出溜公司的特点2. 循序渐进2.1 从研发团队开始2.2 先CI(持续集成&am…

vim使用指南:指令、配置、插件、异常

文章目录 vi / vim命令模式插入模式光标定位复制粘贴删除撤销替换删除查找 底行模式保存退出行号查找多开其他 视图模式注释 异常vim配置vim插件 vi / vim vim的本质是一个编辑器,是一种多模式的编辑器,只能进行读写操作,不能进行编译编辑器…

前端JS必用工具【js-tool-big-box】,时间日期转换学习一

这一小节,我们学习一下 js-tool-big-box 这个npm 前端工具库,关于时间日期格式转换的一部分,后续还会有。 目录 1 安装 2 项目中引入 3 工具使用 3.1 年月日时分秒的单独处理 3.2 以上方法中第一个参数 3.3 日期时间的转换 3.4 更个…