gpt4 book ai didi

c - 在内核模块中,如何知道给定路径是文件还是目录?

转载 作者:行者123 更新时间:2023-11-30 20:24:51 24 4
gpt4 key购买 nike

在内核模块中,我有一个路径,例如/tmp/foo,我如何知道它是目录还是文件?

最佳答案

我发现了一个名为S_ISDIR()的宏,它可以用来知道给定的路径是文件还是目录。要使用这个宏,我们需要inode,它可以从struct path获取,如下:

        struct path path;
int error;
struct inode *inode;
error=kern_path(filename,LOOKUP_FOLLOW, &path);
if(error)
{
printk(KERN_INFO "error");
}
inode = path.dentry->d_inode;
printk(" inode :%lu\n inode mode %u", inode->i_ino, inode->i_mode);
if(S_ISDIR(inode->i_mode))
{
printk(KERN_INFO "It is a directory!");
}
else
{
printk(KERN_INFO "It is a file!");
}

关于c - 在内核模块中,如何知道给定路径是文件还是目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com