由于我们使用“一次分配,终身使用”的扇区分配策略,所以文件读写变得非常容易。
读写普通文件时,首先是对fd_mode进行简单的判断。
fd_pos的用途在于记录读写到文件的哪个位置,类似于一个书签,在文件刚打开时它被置为0。
fd_inode所指向的便是被操作文件的i-node了,我们通过它获得文件的开始扇区、文件类型,以及大小等信息。
需要注意,不仅读操作,写操作也需要先将目标扇区读出,因为读写都是以扇区为单位的,而写操作可以在文件的任意位置进行,所以以扇区为单位的上下文需要先行读出。写操作的另一特殊之处在于它可能改变文件大小,所以返回之前要检查这一点,如果文件大小被改变,则需更新i-node。
读写文件其实很简单就是把文件内容直接通过读写扇区完成。