什么文件序列号?

时间:2017-02-18 14:11:42

标签: c gnu

我找到了一个结构成员(名称是d_fileno)' struct dirent'来自Gnu C library [dirent.h]
我阅读文档,但我不理解文件序列号的含义。我无法在Google上找到任何满意的答案。
所以,我决定编写一个程序来查看文件序列号的内容。

输出

$./fileno ..
file_serial_number   file_name
[6838726]        [source]
[6562883]        [..]
[6838661]        [lstfl]
[6838718]        [.]
[6826161]        [research]
[6838720]        [starcase]

那么,这些数字的含义是什么?

程序中的相关部分

...
while((pDirent = readdir(pDir)) != NULL)
    {
      printf("[%li]\t\t [%s]\n",pDirent->d_fileno, pDirent->d_name);
    }

  closedir(pDir);
...

1 个答案:

答案 0 :(得分:3)

根据文件:

  

文件序列号,用于区分此文件与同一设备上的所有其他文件。

您可以根据inode号码来理解它。使用inode编号,我们可以参考文件的inode data structure,其中包含有关文件的元数据,例如

  • 文件大小
  • 设备ID
  • 文件的用户ID
  • 文件的组ID
  • 所有者,群组和其他人的文件模式信息和访问权限
  • 文件保护标志
  • 文件创建,修改等的时间戳

inodes