UserFS - In-Memory File System Реализация пользовательской файловой системы в оперативной памяти на языке C.
Описание:
UserFS - это упрощенная файловая система, которая хранится полностью в памяти (heap). Поддерживает базовые операции с файлами: создание, удаление, чтение, запись и изменение размера.
Технологии:
Язык: C (C99)
API: POSIX
Сборка: GCC/Clang с флагами -Wall -Wextra -Werror
Возможности:
Плоская структура файлов (без директорий)
Файлы как связный список блоков (аналог FAT)
Поддержка файловых дескрипторов
Чтение/запись с произвольной позиции
Изменение размера файла (resize)
Флаги открытия: read-only, write-only, read-write
Корректная работа с "файлами-призраками" (удаленные файлы с открытыми дескрипторами)
Быстрый старт
Сборка:
gcc -Wall -Wextra -Werror -o test test.c userfs.c
Запуск тестов:
./test
API:
ufs_open() - открыть/создать файл
ufs_write() - запись в файл
ufs_read() - чтение из файла
ufs_close() - закрыть дескриптор
ufs_delete() - удалить файл
ufs_resize() - изменить размер файла
Особенности реализации:
Отсутствие утечек памяти (проверено Valgrind/ASAN)
Отсутствие глобальных переменных
Двусвязные списки для файлов и блоков
Эффективное управление памятью
Тесты включают:
Базовые операции с файлами
Стресс-тесты (1000+ файлов)
Тесты на утечки памяти
Тесты корректности данных