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

发布于 2025-01-08 15:56:23 字数 236 浏览 0 评论 0原文

当我创建一个新文件(例如 touch file.txt)时,其大小等于 0B。 我想知道它的信息(大小、最后修改日期、所有者名称、文件名)存储在哪里。 当然,这些信息存储在硬盘上并由内核管理,但我很想了解更多有关它们的信息: 我可以在哪里以及如何获取它们,例如使用 C 等编程语言,以及如何更改它们。 这些信息是否可以简单地使用编程语言来更改,或者内核可能会避免此操作?

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

When I create a new file (eg. touch file.txt) its size equals to 0B.
I'm wondering where are its informations (size, last modify date, owner name, file name) stored.
These informations are stored on hd and are managed by kernel, of course, but I'd love to know something more about them:
Where and how I may get them, using a programming language as C, for example, and how I may change them.
Are these informations changeable, simply using a programming language, or maybe kernel avoids this operations?

I'm working on Unix based file systems, and I'm asking informations especially about this fs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦行七里 2025-01-15 15:56:23

在 Unix 系统上,它们传统上存储在称为 inode 的文件表示形式的元数据部分

中可以通过 stat() 调用获取此信息,请参阅这些字段,您可以使用 chown() 和 chmod()

On unix system, they're traditionally stored in the metadata part of a file representation called an inode

You can fetch this information with the stat() call, see these fields, you can change the owner and permissions with chown() and chmod()

油焖大侠 2025-01-15 15:56:23

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

This information is retrievable using the stat() function (and others in its family). Where it's stored is up to the specific file system and for what should be obvious reasons, you cannot change them unless you have raw access to the drive -- and that should be avoided unless you're ok with losing everything on that drive.

音盲 2025-01-15 15:56:23

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

The metadata such as owner, size and dates are usually stored in a structure called index-node (inode), which resides in the filesystem's superblock.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文