基于unix的文件系统上的文件信息

时间:2012-02-24 14:48:01

标签: linux unix filesystems

当我创建一个新文件(例如touch file.txt)时,它的大小等于0B。 我想知道它的信息(大小,最后修改日期,所有者名称,文件名)存储在哪里。 当然,这些信息存储在高清中并由内核管理,但我想知道更多关于它们的信息: 我可以在何处以及如何使用编程语言作为C来获取它们,以及如何更改它们。 这些信息是否可以改变,只需使用编程语言,或者内核可以避免这种操作?

我正在研究基于Unix的文件系统,我正在询问有关此fs的信息。

3 个答案:

答案 0 :(得分:3)

在unix系统上,它们传统上存储在名为inode

的文件表示的元数据部分中

您可以通过stat()来电获取此信息,请参阅these字段,您可以使用chown()和chmod更改所有者和权限()

答案 1 :(得分:2)

可以使用stat()函数(以及其族中的其他函数)检索此信息。它存储的位置取决于特定的文件系统,并且由于显而易见的原因,除非您具有对驱动器的原始访问权限,否则无法更改它们 - 除非您丢失该驱动器上的所有内容,否则应该避免这种情况。 / p>

答案 2 :(得分:0)

所有者,大小和日期等元数据通常存储在名为index-node(inode)的结构中,该结构位于文件系统的超级块中。