Inode号的数据结构是什么样的?
我对索引节点号的定义感到惊讶:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
索引节点号不是索引节点。 :) 您可以将 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...)
不必要。 索引节点被回收。
检查包含适合特定文件系统的
struct
定义的头文件(例如对于ext2 和ext3 来说/usr/include/linux/ext2_fs.h
)。Not necessarily. Inodes are recycled.
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).