Я нахожусь в проекте, где мне нужно вести учет, т.е. указывать, был ли доступ к конкретному файлу программой A. Я планирую хранить эту информацию в индексном узле, поскольку использование другой дополнительной структуры данных было бы неэффективным. Я планирую повторно использовать поле i_mode в структуре данных inode. Какие-либо предложения. Более того, я не знаю, как писать в структуру данных inode из пользовательского пространства. Как я могу это сделать? Спасибо...
Повторное использование поля inode
Ответы (3)
Файловая система следит за индексом; он даже не позволит суперпользователю напрямую изменить индексный дескриптор (хотя root всегда может получить доступ к размонтированному (блочному или символьному) устройству, чтобы изменить его).
Если вы не напишете код для изменения файловой системы — модуля ядра — вы не сможете делать то, что хотите. Найдите другой способ сделать это.
Файловая система не предназначена для решения проблем пользователей. Вы хотите вести учет измененных файлов, другие хотят вести учет новых/удаленных файлов.
Я вижу только следующие варианты:
- inotify
- сохранять статус интересующих файлов/каталогов и проверять изменения один раз
Ради интереса можно рассмотреть:
- модуль ядра
- внедрить собственную файловую систему
Немного погуглив, я увидел, что «липкий бит» сегодня мало используется, и мы можем использовать его, а также изменять его из пользовательского пространства.