Какова структура данных номера Inode? - PullRequest
3 голосов
/ 05 мая 2009

Я поражен определением номера индекса:

Inode - это структура данных в традиционной файловой системе в стиле Unix. такие как UFS или ext3. Индод хранит основную информацию о регулярном файл, каталог или другой объект файловой системы. Источник

Таким образом, в каждом номере индекса должен быть логический порядок. Можете ли вы сделать что-то прямо из числа на передней панели?

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

Если нет, что вы можете узнать благодаря структуре данных?

Ответы [ 2 ]

6 голосов
/ 05 мая 2009

Номер инода не является инодом. :) Вы можете думать о номере индекса как о первичном ключе индекса.

Что касается того, как определяются номера инодов, это зависит от файловой системы. Некоторые файловые системы могут даже создавать номера инодов из воздуха (особенно некоторые файловые системы FUSE). В других случаях он может отображаться непосредственно на место на диске. К сожалению, это несколько устаревшая концепция, и многие современные файловые системы в наши дни сталкиваются с трудностями при сжатии внутренней информации о местоположении в 32-разрядное число.

В любом случае, как программист приложения, следует рассматривать номер индекса как непрозрачное значение, подходящее только для сравнения на равенство (и только если вы уверены, что файл не был удален, так как номера индекса можно использовать повторно. ..)

3 голосов
/ 05 мая 2009

Можете ли вы заключить что-то прямо из чисел спереди?

Не обязательно. Иноды утилизируются.

Если нет, что вы можете узнать благодаря структуре данных?

Проверьте файл заголовка, содержащий определение struct, соответствующее конкретной файловой системе (например, /usr/include/linux/ext2_fs.h для ext2 и ext3).

...