6

C语言操作fat32文件系统系列

 3 years ago
source link: https://blog.popkx.com/c-programming-about-fat32-file-system-series/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

C语言操作fat32文件系统系列

发表于 2018-07-10 20:07:51   |   已被 访问: 724 次   |   分类于:   Linux笔记   |   暂无评论

fat32 文件系统是 u 盘、SD 卡、TF 卡等小容量存储媒介常用的文件系统。它的优点我认为是非常简单,缺点就是性能不太好,以及能够存储的单文件最大不能超过 4GB。其他详细的优缺点这里就不说了,想了解可以去百科看一看。

我为什么要研究 fat32 文件系统


其实最主要的原因是工作上有需要了。现在有产品设备使用 tf 卡存储数据,但是设备在开发过程中经常会因为意外断电等原因重启,丢一点数据都能够接受,最让人崩溃的是文件系统经常会损坏,必须格式化才能被操作系统认出。因此,设备特别需要一个不易损坏的文件系统,因为 fat32 非常简单,所以就学习和研究它了。

那为什么要写这系列博客呢?因为网络上符合我口味的资料真的有点少,经过一段时间的学习,算是对fat32文件系统比较熟了,也用 c 语言实现了不易损坏的文件系统。称之为预分配文件系统吧,架构类似于 fat32,所以操作系统能够认出。但是又与 fat32 不完全相同,因为删减了一些不需要的功能,自定义了一些符合自己产品的功能,提高了可靠性和读写速度。这里记录一些,希望能帮到大家,也方便以后的自己回顾。

这系列文章主要说什么


首先,肯定要了解 fat32 的结构,以及其内部主要功能的实现,这包括:

  • 格式化如何实现
  • 目录如何生成
  • 文件如何创建
  • 数据如何存储
  • 文件如何删除

此外,在了解它的过程中,也知道了为何 fat32 文件系统无法存储超过 4GB 的单文件,而且发现 fat32 文件系统特别适合做数据恢复,所以,还会介绍数据恢复的方法

最后,标题也说了,会用 C 语言直接操作没有文件系统的存储媒介(例如 u 盘,tf 卡),利用 C 语言实现:

  • 格式化,要求操作系统能够识别

其实如果利用 c 语言能够实现以上几个过程,那么打造属于自己的 fat32 文件系统,甚至打造自己的文件系统都是水到渠成的了。

阅读更多:   Linux笔记


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK