Ответ 1
Я не думаю, что есть какой-либо программный способ запросить определенный номер inode при создании файла из пользовательского пространства. Помимо видимости результатов stat()
, номера inode не имеют никакого значения в пользовательском пространстве; они являются частью внутренних учетных данных файловой системы, точно так же, как номера блоков, на которые выделено содержимое файла.
Возможно, вы могли бы использовать debugfs
для "изменения" существующего номера файла inode, скопировав содержимое одного inode на другой, а затем обновив любые записи в каталоге, чтобы указать на новый индексный дескриптор и освободить старый. Таким образом, вы можете создать свой файл с любым номером inode, а затем "изменить" его на желаемый. Однако это должно быть сделано с особой осторожностью, поскольку ошибки могут привести к повреждению файловой системы и потере данных. Вам также необходимо учитывать возможность того, что ваш желаемый номер inode уже используется другим файлом.