ext2 +, NTFS и другие файловые системы имеют главную таблицу файлов на диске, а каталоги - это просто особый вид файлов, полный записей, которые указывают на записи в таблице файлов.(Эта настройка допускает жесткие ссылки, а также «временные файлы», которые не видны через структуру каталогов.) «Инод» - это термин Linux (и, вероятно, других * nixes) для этих записей таблицы главного файла.
Inode не отслеживает текущую позицию в файле или текущий режим (открытый для чтения, записи, оба ...?), Хотя.Он содержит только информацию, которая помогает ОС находить содержимое файла на диске и не позволяет людям, которые не должны возиться, делать это.Вам нужна другая структура для отслеживания этой информации.Скорее всего, это будет структура «открытый файл», которую вы видите.
Очевидно, структура «файл» также имеет структуру внутри, полную указателей на функции для вещей, которые вы можете делать с файлом.Это было бы для того, чтобы поддержать философию Unix «все в файле» и позволить вам читать и писать, скажем, в сокет так же, как в обычный файл, а также чтобы обеспечить способ абстрагирования файловой системы.конкретный код из кода, который будет работать для всего (что значительно упрощает поддержку нескольких типов файловых систем).