【发布时间】:2014-02-21 17:24:36
【问题描述】:
我正在从事需要跟踪文件(inode)路径的 Linux 内核编程。
我知道一些判断文件是目录还是软链接的函数,比如S_ISDIR、S_ISLNK。但是我不知道如何判断一个文件(inode)是否是“..”文件,即文件指向父目录?
【问题讨论】:
标签: linux linux-kernel inode
我正在从事需要跟踪文件(inode)路径的 Linux 内核编程。
我知道一些判断文件是目录还是软链接的函数,比如S_ISDIR、S_ISLNK。但是我不知道如何判断一个文件(inode)是否是“..”文件,即文件指向父目录?
【问题讨论】:
标签: linux linux-kernel inode
AFAIK 没有名称为“..”的 inode。当您访问 /etc/passwd 等文件时,有一个称为路径名查找的过程,它将每个“/”、“etc”和“passwd”转换为 inode。当它遇到'.'或'/'或'..'有特殊处理。为了 '。'和'/',它是一种无操作并继续使用相同的inode。对于“..”,它会返回获取它来自的父 inode。这在Understanding the Linux Kernel 第 12 章,虚拟文件系统中有非常清楚的解释。我强烈建议通过它。另见http://www.mjmwired.net/kernel/Documentation/filesystems/path-lookup.txt
【讨论】: