Как создать файловую систему FUSE?
Вопрос даже не по конкретным языкам программирования. Как мне создать FUSE файловую систему?
Как я понимаю, мне надо лишь описать системные вызовы, применимые к файлам вообще. Ну, грубо говоря, пример из C:
struct fuse_operations {
int open(const char* filename, int mode);
int close(int fd);
int lgetattr(const char* filename);
...
};
Только вот что я там должен [о]писать - неясно. Не говоря уже о том, как FUSE "объяснить", что твоя файловая система - не просто образ диска, а архив (fuse-zip) или, того круче, файлы расположены в оперативной памяти (tmpfs, ramfs, cramfs, rootfs). Вот как заставить FUSE "парсить" файлы из архива, или того круче, хранить файлы в ОЗУ?? И что я должен приписывать в fuse_operations, как именно мне описывать эти системные вызовы???
Ответы (1 шт):
fuse всеравно где вы храните информацию. Драйвер просто транслирует системные вызовы в вашу программу.
Первое что нужно описать это вызов opendir(), readdir() - тогда отобразится диск с чемто внутри.
Пишите вызовы open(), read() и сможете читать виртуальные файлы.