linux:文件系统的系统调用

时间:2022-12-15 10:04:05

当用户访问一个普通文件或者目录文件的内容,实际上是访问存储在硬件块设备上的一些数据。从这个意义上说,文件系统是硬盘分区物理组织的用户级视图。
因为处于用户态的进程不能直接与底层硬件交互,所以每个实际的文件操作必须在内核态进行。因此unix操作系统定义了几个与文件操作有关的系统调用。
1.打开文件
用户进程只能访问“打开的”文件。这个打开文件的系统调用创建一个“打开文件”对象,并返回文件描述符的标识符。
文件描述符表示进程与打开文件之间的交互,而打开文件对象包含了与这种交互相关的数据。
2.访问打开的文件
对普通UNIX文件,可以顺序访问,也可以随机访问,而对块设备和命名管道文件,通常只能顺序地访问。这两个访问方式中,内核把文件指针存放在打开文件对象中,也就是说,当前文件就是下一次进行读或写操作的位置。
3.关闭文件
4.更名以及删除文件
更名或者删除一个文件时,不需要打开它。没有对这个文件的内容起作用,而是对一个或者多个目录的内容起作用。

参考《深入理解LInux内核》