文件系统
文件系统
M核的文件系统子系统当前支持的文件系统有FATFS与LittleFS。同A核一样,通过VFS层提供了POSIX标准的操作,保持了接口的一致性,但是因为M核的资源非常紧张,VFS层非常轻薄,没有提供类似A核的高级功能(如pagecache等),主要是接口的标准化和适配工作,具体的事务由各个文件系统实际承载。M核文件系统支持的功能如下表所示:
表1 文件操作
接口名 | 描述 | FATFS | LITTLEFS |
---|---|---|---|
open | 打开文件 | 支持 | 支持 |
close | 关闭文件 | 支持 | 支持 |
read | 读取文件内容 | 支持 | 支持 |
write | 往文件写入内容 | 支持 | 支持 |
lseek | 设置文件偏移位置 | 支持 | 支持 |
unlink | 删除文件 | 支持 | 支持 |
rename | 重命名文件 | 支持 | 支持 |
fstat | 通过文件句柄获取文件信息 | 支持 | 支持 |
stat | 通过文件路径名获取文件信息 | 支持 | 支持 |
fsync | 文件内容刷入存储设备 | 支持 | 支持 |
表2 目录操作
接口名 | 描述 | FATFS | LITTLEFS |
---|---|---|---|
mkdir | 创建目录 | 支持 | 支持 |
opendir | 打开目录 | 支持 | 支持 |
readdir | 读取目录项内容 | 支持 | 支持 |
closedir | 关闭目录 | 支持 | 支持 |
rmdir | 删除目录 | 支持 | 支持 |
表3 分区操作
接口名 | 描述 | FATFS | LITTLEFS |
---|---|---|---|
mount | 分区挂载 | 支持 | 支持 |
umount | 分区卸载 | 支持 | 支持 |
umount2 | 分区卸载,可通过MNT_FORCE参数进行强制卸载 | 支持 | 不支持 |
statfs | 获取分区信息 | 支持 | 不支持 |