内容纲要
本课时的主要目的是提供一个文件数据的写入接口,但目前的写入简单,不实现文件大小的扩充。
主要内容
文件写入原理
同文件的读,虽然从逻辑上来看,文件是一整块的二进制数据,但是深入其具体的存储,会发现文件数据被划分成多个簇,这些簇通过链接的方式组织起来。
要实现文件的写入,需首先定位到簇链中的某个位置,然后顺着簇链写,写入要求写入的数据量。
写入位置复杂性
同文件的读,写入的起点,结束位置同样要考虑扇区边界不对齐的问题。写入的数据量会使得写入可能跨扇区、跨簇。
课程中对写入简化成两种简单的基本写,如下图所求。
- 同一扇区内写部分数据:需要从设备读所在扇区到内部缓存,再写数据到缓存,再回写扇区数据到磁盘。这样可使同一扇区其它不需要写的位置,不受当前写入的影响。
- 同一簇内连续写多个扇区:直接从用户缓存中,写入到相应的多个扇区。
重点难点
代码的实现部分,我觉得实现难度不大。如果你在编写过程中,遇到什么难点,可以向我反馈。我再补充到这里。