Inode号的数据结构是什么样的?

发布于 2024-07-18 08:42:17 字数 571 浏览 8 评论 0原文

我对索引节点号的定义感到惊讶:

inode 是传统 Unix 风格文件系统上的一种数据结构 例如 UFS 或 ext3。 inode 存储常规的基本信息 文件、目录或其他文件系统对象。 来源

所以必须有一个逻辑顺序每个索引节点号。 你能直接从前面的数字得出一些结论吗?

4214970 0 drwx------  102 user  staff   3.4K Feb  2 22:34 new
5728909 0 drwx------    3 user  staff   102B Mar 25 22:11 new_new
5415906 0 drwx------   15 user  staff   510B Mar 19 02:28 stdout_TEST

如果没有,通过数据结构你可以知道什么样的事情?

I am flabbergasted by the definition of the inode number:

An inode is a data structure on a traditional Unix-style file system
such as UFS or ext3. An inode stores basic information about a regular
file, directory, or other file system object. Source

So there must be a logical order in every inode number. Can you conclude something directly from the numbers in the front?

4214970 0 drwx------  102 user  staff   3.4K Feb  2 22:34 new
5728909 0 drwx------    3 user  staff   102B Mar 25 22:11 new_new
5415906 0 drwx------   15 user  staff   510B Mar 19 02:28 stdout_TEST

If not, what kind of things you can know thanks to the data structure?

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

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

发布评论

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

评论(2

苍风燃霜 2024-07-25 08:42:17

索引节点号不是索引节点。 :) 您可以将 inode 编号视为 inode 的主键。

至于inode号是如何决定的,取决于文件系统。 某些文件系统甚至可能凭空生成 inode 编号(特别是某些 FUSE 文件系统)。 其他时候,它可能直接映射到磁盘上的位置。 不幸的是,这是一个有点过时的概念,并且现在许多现代文件系统都很难将其内部位置信息压缩为 32 位数字。

无论如何,作为一名应用程序程序员,应该将 inode 编号视为不透明值,仅适用于相等比较(并且仅当您确定文件没有被删除时,因为 inode 编号可能会被重用......)

An inode number is not an inode. :) You can think of the inode number as the inode's primary key.

As for how the inode numbers are decided, it depends on the filesystem. Some filesystems might even make inode numbers out of thin air (particularly some FUSE filesystems). Other times it may map directly to the location on disk. The unfortunate fact is, it's a somewhat outdated concept, and many modern filesystems have difficulty compacting their internal location information into a 32-bit number these days.

In any case, as an application programmer, one should treat the inode number as an opaque value, suitable for equality comparison only (and only if you're sure the file wasn't deleted, as inode numbers may be reused...)

慈悲佛祖 2024-07-25 08:42:17

你能直接从前面的数字得出一些结论吗?

不必要。 索引节点被回收。

如果没有,通过数据结构你可以知道什么样的事情?

检查包含适合特定文件系统的struct 定义的头文件(例如对于ext2 和ext3 来说/usr/include/linux/ext2_fs.h)。

Can you conclude something directly from the numbers in the front?

Not necessarily. Inodes are recycled.

If not, what kind of things you can know thanks to the data structure?

Check the header file containing the definition of the struct appropriate to the specific filesystem (e.g. /usr/include/linux/ext2_fs.h for ext2 and ext3).

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