Написание файловой системы используя FUSE на языке Си

60 000 руб. за проект
23 апреля 2022, 20:13 • 5 откликов • 40 просмотров
Описание работы
Задание:

На смонтированном диске на линуксе должен видеть структуру ФС. (Должен видеть не один файл, а все находящиеся там файлы и директории) .

Структура Файловой системы:

typedef struct NCUTILS2_API NcFsHeader_t
{
uint32_t uint32_null;
uint32_t uint32_fs_version;
uint32_t uint32_fs_total_size;
uint32_t uint32_fs_used_size;
uint32_t uint32_fs_add_start_data_size;
uint32_t uint32_reserved [16];
}NcFsHeader_t;

typedef struct NCUTILS2_API NcFileInfo_t

{
NcFilename_t filename;
uint32_t ftype;// FileTypes
uint32_t useCounter;
uint32_t dtLastDataChange;
uint32_t dtLastReadAccess;
uint32_t dtLastStatusChange;
uint32_t size;
uint32_t handle;
uint32_t childCount;
uint8_t reserved1[16]; // reserved area for future
uint32_t w_Busy_clientNumber;//4
uint32_t r_Busy_clientNumber[MaxConnectedClients_C];//4*8=32
uint8_t reserved2[200]; // reserved area for future

}NcFileInfo_t;

typedef struct NCUTILS2_API NcFileInfoHeader_t
{
uint32_t size;
NcFileInfo_t fileinfo;
}NcFileInfoHeader_t;

#define MaxFilePathLen_C 256
typedef uint16_t NcFilename_t[MaxFilePathLen_C];

В файле это упаковано так:

Сначала файла NcFsHeader_t
потом пропускаем число байт, прочитанных из header.uint32_fs_add_start_data_size
После чего идут последовательно заголовки файлов и данные из них.
Заголовок NcFileInfoHeader_t
Если это папка (header.fileinfo.ftype & FileType_Directory), то следом идёт новая структура NcFileInfoHeader_t
Если это не папка, то следом идет содержимое файла, размером header.fileinfo.size
Потом uint32 контрольной суммы и далее новый NcFileInfoHeader_t.
Так читаем пока файл не кончится.

Приложил картинку, каким образом это должно выглядеть, но должно быть на смонтированном диске на линуксе. На котором я могу увидеть всю это ФС , с ее каталогами и файлами , открывать, читать и изменять их.

Саму ФС, которую надо прочитать не могу прикрепить к заказу( тк кроме фото ничего не могу прикрепить), поэтому оставил ссылку на яндекс диск с ней
https://disk.yandex.ru/d/Ink96Qk45uRHMg

Срок до 20 мая

Файлы
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
Исполнитель выполнил заказ быстрее оговоренных сроков, код написан хорошо, отвечал подробно и ясно на все вопросы.
Рекомендую!

2 года назад
R50 15aeb066000f2cc3360cc211e61e9dc0
Фрилансер
Заказчик дал точное описание формата, который было нужно прочитать, быстро ответил на вопросы по ТЗ. Взаимодействие живое и продуктивное, деньги переведены точно как договаривались.
2 года назад