如何判断一个文件是否为“文件”&引用;Linux内核编程中的文件?

如何判断一个文件是否为“文件”&引用;Linux内核编程中的文件?,linux,linux-kernel,inode,Linux,Linux Kernel,Inode,我正在进行Linux内核编程,需要跟踪文件(inode)路径 我知道一些函数,比如S_ISDIR、S_ISLNK,用来判断文件是目录还是软链接。但是我不知道如何判断一个文件(inode)是否是“.”文件,即该文件指向父目录?AFAIK没有名为“…”的inode。当您访问诸如/etc/passwd之类的文件时,有一个称为路径名查找的过程,它将每个“/”、“etc”和“passwd”转换为inode。当它遇到“.”或“/”或“..”时,有一个特殊的处理过程。对于“.”和“/”,它有点不可操作,并且继

我正在进行Linux内核编程,需要跟踪文件(inode)路径


我知道一些函数,比如S_ISDIR、S_ISLNK,用来判断文件是目录还是软链接。但是我不知道如何判断一个文件(inode)是否是“.”文件,即该文件指向父目录?

AFAIK没有名为“…”的inode。当您访问诸如/etc/passwd之类的文件时,有一个称为路径名查找的过程,它将每个“/”、“etc”和“passwd”转换为inode。当它遇到“.”或“/”或“..”时,有一个特殊的处理过程。对于“.”和“/”,它有点不可操作,并且继续使用相同的inode。对于“…”它返回到获取它来自的父inode。这在第12章“虚拟文件系统”中解释得非常清楚。我强烈建议你去看看。另请参见

具体地说,我正在编写一个安全模型,如果操作想要遵循符号链接,或者在某些情况下遵循“.”,则该模型将阻止操作。我可以通过S_ISLNK(inode->I_模式)判断它是否想要访问slink,但是我如何判断它是否想要访问“.”?不管怎样,谢谢你的回答,我是这方面的新手,你的参考帮助了我很多。然后我想你必须更新路径名查找的这一部分:请注意,这是VFS代码,会影响所有文件系统。