在 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)。

注意,这个方法只适用于内核开发中,无法在用户空间中使用。

Linux 内核:如何根据 struct file* 获取文件描述符 (fd)

原文地址: https://www.cveoy.top/t/topic/wZm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录