TARFS 0.1.5
Read-only TAR filesystem for ESP32
Loading...
Searching...
No Matches
Нативный API

В системах, которые не предоставляют виртуальную файловую систему (VFS), стандартные функции файлового ввода-вывода, такие как open() и read(), могут быть недоступны или тесно связаны с конкретной системой хранения данных.

Чтобы обеспечить переносимость TARFS в таких средах, TARFS предоставляет нативный API, который повторяет привычные POSIX-подобные операции работы с файлами и каталогами:

open() → tarf_open()
close() → tarf_close()
opendir() → tard_opendir()
readdir() → tard_readdir()
mmap() → tarf_mmap()
ioctl() → tarf_ioctl()

и так далее.

Основное отличие в сигнатурах функций заключается в том, что каждая функция Native API принимает один дополнительный параметр: идентификатор файловой системы в качестве своего первого аргумента.

Этот идентификатор представляет собой значение, возвращаемое функцией tarfs_mount().

Например:

int fd = tarf_open(fs_id, "/index.html", O_RDONLY);
int tarf_open(void *ctx, const char *path0, int flags, int mode)
Open a TARFS file or directory.
Definition file.c:252

Если смонтирован только один экземпляр TARFS, вместо идентификатора файловой системы можно использовать 0 (ноль):

int fd = tarf_open(0, "/index.html", O_RDONLY);

Это позволяет использовать TARFS непосредственно в bare-metal-системах или на встраиваемых платформах без виртуальной файловой системы (VFS).