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

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

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


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

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

这系列文章主要说什么


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

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

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

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

  • 格式化,要求操作系统能够识别
  • 生成目录
  • 创建文件
  • 存储数据
  • 删除文件

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

阅读更多:   Linux笔记
添加新评论

icon_redface.gificon_idea.gificon_cool.gif2016kuk.gificon_mrgreen.gif2016shuai.gif2016tp.gif2016db.gif2016ch.gificon_razz.gif2016zj.gificon_sad.gificon_cry.gif2016zhh.gificon_question.gif2016jk.gif2016bs.gificon_lol.gif2016qiao.gificon_surprised.gif2016fendou.gif2016ll.gif