首页 > 代码库 > 文件IO详解(二)---文件描述符(fd)和inode号的关系

文件IO详解(二)---文件描述符(fd)和inode号的关系

1、文件描述符和inode号码是不同的两个东西。
 
2、对于每个进程,系统会建立一个进程控制块(PCB)来保存相关的信息,而这个PCB在内核中的表现其实就是一个称为task_struct的结构体,这个结构体的成员用来保存与此进程有关的相关信息,其中有个成员是struct file_struct  *files,它是用来找到此进程所有打开的文件列表的,files变量指向的是struct file_struct类型的结构体,这个结构体中有一个成员是一个指针数组struct file *fd_array[],这个数组中的每个元素会指向一个struct file的结构体,这个结构体是用来描述一个打开的文件的,有很多的成员,其中有个成员是指向struct file_operation的指针变量,而struct file_operation结构体中包括了很多的函数指针,也就是open,write,realease,read等等对文件进行操作的函数,具体这些函数的实现就是驱动开发需要做的事情。如下图所示。
技术分享
技术分享
3、在对文件操作前,必须要先打开文件,打开文件过程其实就是让程序能通过某个路径能够找到此文件,关闭文件就是将此路径断开,找不到文件。
 
 

文件IO详解(二)---文件描述符(fd)和inode号的关系