File 文件状态信息实际存储在哪里?

File 文件状态信息实际存储在哪里?,file,unix,filesystems,stat,File,Unix,Filesystems,Stat,在中使用stat()获取时,文件状态信息实际存储在哪里 我正在学习Unix编程,但当我使用stat()函数获取文件状态时,我感到困惑。没有任何关于文件信息实际存储位置的信息 void do_stat(char*filename){ 结构统计信息; if(stat(文件名和信息)=-1){ perror(文件名); }否则{ 显示文件信息(文件名和信息); } } 要回答这个问题,您应该完成有关类UNIX文件系统的基本知识。你可以从中得到基本印象 对于您的问题:文件状态信息存储在索引节点列表中,文

在中使用stat()获取时,文件状态信息实际存储在哪里

我正在学习Unix编程,但当我使用stat()函数获取文件状态时,我感到困惑。没有任何关于文件信息实际存储位置的信息

void do_stat(char*filename){
结构统计信息;
if(stat(文件名和信息)=-1){
perror(文件名);
}否则{
显示文件信息(文件名和信息);
}
}

要回答这个问题,您应该完成有关类UNIX文件系统的基本知识。你可以从中得到基本印象

对于您的问题:文件状态信息存储在索引节点列表中,文件的索引节点编号记录在目录文件中

当您调用系统方法
stat()
获取文件的状态信息时,内核将从目录文件中获取inode编号,然后计算inode的实际磁盘地址,然后获取状态信息

您可以使用
ls-i1a dirname
获取目录文件的inode信息,这里是我执行此命令后的输出,第一列是inode编号:

$ls-i1a。
8627654638 .
633334 ..
8627654639 gitlab

如果使用Unix,请检查
man 2 stat
以获取
stat
struct中所有字段的说明。