命令ls -l
如何计算inode的硬链接数?
它是使用Linux API还是需要更深入了解Linux内核源代码的代码?
我还不能理解ls
的源代码,因为我刚开始学习C语言。
答案 0 :(得分:3)
调用stat
获取有关该文件的信息(在struct stat
中)。然后,它会查看st_nlink
的{{1}}字段。
答案 1 :(得分:1)
这是一个真实的简单程序,用于说明stat()
用户查找硬链接计数:
#include <stdio.h>
#include <sys/stat.h>
int main ( int argc, char ** argv ) {
int i;
struct stat st; /* stat puts info here */
for (i = 1; i < argc; ++i) {
if (stat(argv[i], &st) == -1) perror(argv[i]);
else printf("%s has %d hard links\n", argv[i], st.st_nlink);
}
return 0;
}
(在命令行上传递一个或多个文件名)