为了模仿linux的文件系统,查看一下linux下如何进行操作文件。这是一段非常简单的对文件进行创建、读写以及关闭的代码,其中用到了open( )、write( )、read( )、close( )等几个系统调用。显然,如果我们的文件系统向用户进程提供服务的话,也要实现这些系统调用,所以我们最好模仿一下它们的行为。
代码所有Linux系统调用都使用到了一个变量(或者返回值),那就是fd,即“file descriptor”,是它“代表”了一个文件,理所应当地充当了整个过程中最重要的角色。
我们即将使用的文件操作方案。每个进程表中都将增加一个filp数组,其成员是指向file descriptor(下文简称fd)的指针。每一个使用中的fd都有一个指针指向一个inode结构体,而由这个inode结构体可以找到具体的文件。