1. 主页
  2. 自己动手从0到1学写FAT32文件系统
  3. 第3章 文件操作
  4. 实现文件读取

实现文件读取

内容纲要

本课程提供文件读取的接口。

主要内容

简单来说,文件读取,即沿着文件内容的簇链,将指定范围内的数据读取出来。

文件内容按簇链存储

前面课时中已经提到过,FAT分区中数据区用于存储文件或目录数据。其被划分成很多个大小相同的簇。通过前面课时中,对目录的遍历,我们已经熟悉了簇链的组织结构。那么对于文件,其内容存储也是按相同的簇链方式组织。

在读取时,先定位到指定簇及簇中的偏移,然后根据需要读取的数据量,沿着簇链读取即可。

重点难点

本课程中的重点就在于怎样处理扇区中的位置问题。如下图所求,我们能做的是读取指定扇区,读取指定簇,但是某个扇区/簇内的数据并不是全都需要读取,可能只需要读取一部分。这就需要xfile_read剔除那些不需要的数据。

读取起始和结束位置的边界对齐问题

主要问题在于:磁盘和SD等都是块设备,读取时必须以整个块为单位读取。但是读取的起始和结束位置,可能位于扇区边界内部。所以,视频中提到了要处理扇区边界对齐的情况。

此处,还要考虑到数据是簇为单位分配存储的,所以在读取时还要考虑到簇的影响。

在xfile_read中将读取的过程简化为两种子过程,综合应对所有不同的位置问题。

注意事项

常见问题

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

电子邮件地址不会被公开。 必填项已用*标注