Linux 内核:如何根据 struct file* 获取文件描述符 (fd)
在 Linux 内核中,可以通过 'filp->f_path.dentry->d_inode->i_ino' 来获取文件的文件描述符(fd)。
具体的代码如下:
#include <linux/fs.h>
int get_fd(struct file *filp) {
struct inode *inode = filp->f_path.dentry->d_inode;
return inode->i_ino;
}
这里,'filp->f_path.dentry' 是指向文件的 dentry 结构体的指针,通过它可以获取到文件的 inode 结构体指针。然后,'inode->i_ino' 就是文件的文件描述符(fd)。
注意,这个方法只适用于内核开发中,无法在用户空间中使用。
原文地址: https://www.cveoy.top/t/topic/wZm 著作权归作者所有。请勿转载和采集!