mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-21 02:15:55 +08:00
1.7 KiB
1.7 KiB
文件系统API说明
概述
- 文件系统的主体是littlefs, 总空间288k, 可用100k左右.
- 有多套API, 各有特色, 但不应该混用
Osa文件API
位于 osasys.h, 只有少量函数, 与posix API 类似. 不涉及目录操作
OSAFILE OsaFopen(const char *fileName, const char* mode);
INT32 OsaFtell(OSAFILE fp);
INT32 OsaFclose(OSAFILE fp);
UINT32 OsaFread(void *buf, UINT32 size, UINT32 count, OSAFILE fp);
UINT32 OsaFwrite(void *buf, UINT32 size, UINT32 count, OSAFILE fp);
INT32 OsaFseek(OSAFILE fp, INT32 offset, UINT8 seekType);
UINT32 OsaFremove(const char *fileName);
通用调用逻辑:
#define BUFF_SIZE (512)
char buff[BUFF_SIZE];
UINT32 rlen = 0;
OSAFILE fp = OsaFopen("fs_test", "r");
if (fp) { // 若成功, 必不为NULL
// 读写数据
while ((rlen = OsaFread(buff, BUFF_SIZE, 1, fp)) > 0) {
// 处理读取到的数据
}
OsaFclose(fp);
}
LiffteFs 文件API
在原始的lifftefs上, 封装成 lfs_port.h
注意:
- 不要调用
LFS_initLFS_deinit, 底层会自行处理 - API 均以
LFS_开头, 为同步阻塞且线程安全的函数. 与原生lifftefs的API基本上一一对应
通用调用逻辑:
#define BUFF_SIZE (512)
char buff[BUFF_SIZE];
UINT32 rlen = 0;
int ret = 0;
lfs_file_t *file = malloc(sizeof(lfs_file_t));
if (file == NULL) {
// 内存分配出错
return -1;
}
ret = LFS_fileOpen(file, "fs_test", LFS_O_RDONLY);
if (ret == LFS_ERR_OK) { // 若成功, 必不为NULL
// 读写数据
while ((rlen = LFS_fileRead(file, buff, BUFF_SIZE)) > 0) {
// 处理读取到的数据
}
LFS_fileClose(file);
}
free(file); // 注意释放内存