То, что вы просите, это не просто «обращенная» файловая система. Вам нужна файловая система со структурой записей «обращенная», то есть файловая система записей, в которой запись, добавленная последней, появляется первой в файле. На самом деле обратный аспект, вероятно, будет реализован как «вы можете вставить запись перед первой существующей записью».
Интерфейсы файловой системы, встречающиеся в операционной системе, обычно встречающейся на ПК (Unix, Windows и даже более экзотических), имеют только байтовую структуру - они не имеют понятия записи. Так что тебе не повезло.
Одним из возможных подходов было бы сделать каждую запись журнала отдельным файлом в каталоге. Затем просмотрите каталог в обратном порядке времени создания файла или в обратном порядке имен, если вы даете монотонно увеличивающиеся имена записям журнала. Поскольку у вас может быть большое количество записей в журнале, убедитесь, что вы используете файловую систему, которая хорошо поддерживает большие каталоги (например, в Linux reiserfs и ext3 с функцией dir_index
подходят, но ext2 нет), либо используйте подкаталоги ( один для первых 1000 записей, один для следующих 1000 и т. д.).
Другой подход заключается в использовании более сложной базы данных, например базы данных, к которой можно обращаться в SQL, и просто выбирать записи в обратном порядке при их создании (SELECT message FROM logs ORDER BY date DESC
).