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

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

最佳答案

AFAIK没有名称为“ ..”的索引节点。当您访问诸如/ etc / passwd之类的文件时,会有一个称为路径名查找的过程,该过程将每个'/','etc'和'passwd'转换为inode。当遇到“。”或'/'或'..'进行特殊处理。对于“。”和'/',这是一种无操作,并继续使用相同的inode。对于“ ..”,它返回以获取其来源的父索引节点。 Understanding the Linux Kernel第12章,虚拟文件​​系统中对此进行了非常清楚的解释。我强烈建议您仔细阅读。另请参见http://www.mjmwired.net/kernel/Documentation/filesystems/path-lookup.txt

关于linux - 在Linux内核编程中如何判断文件是否为“..”文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21439033/

10-13 07:24
查看更多