2 个版本
0.1.1 | 2024年7月18日 |
---|---|
0.1.0 | 2024年7月18日 |
#439 在 文件系统
1,246 每月下载次数
在 2 crate 中使用
22KB
404 行
axfs_crates
用于构建文件系统的 crate
- axfs_vfs: 虚拟文件系统接口。
- axfs_devfs: 设备文件系统。
- axfs_ramfs: RAM 文件系统。
lib.rs
:
ArceOS 使用的虚拟文件系统接口。
文件系统是一组文件和目录(目前不支持符号链接),统称为 节点,与 Linux 中的 inode 概念相似。文件系统需要实现 VfsOps
特性,其文件和目录需要实现 VfsNodeOps
特性。
VfsOps
特性为文件系统提供了以下操作
mount()
: 在文件系统挂载时执行某些操作。umount()
: 在文件系统卸载时执行某些操作。format()
: 格式化文件系统。statfs()
: 获取文件系统的属性。root_dir()
:获取文件系统的根目录。
VfsNodeOps
特性在文件或目录上提供了以下操作
操作 | 描述 | 文件/目录 |
---|---|---|
open() |
节点打开时执行某些操作 | 两者 |
release() |
节点关闭时执行某些操作 | 两者 |
get_attr() |
获取节点的属性 | 两者 |
read_at() |
从文件中读取数据 | 文件 |
write_at() |
向文件写入数据 | 文件 |
fsync() |
将文件数据同步到磁盘 | 文件 |
truncate() |
截断文件 | 文件 |
parent() |
获取父目录 | 目录 |
lookup() |
查找给定路径的节点 | 目录 |
create() |
使用给定路径创建新节点 | 目录 |
remove() |
移除给定路径的节点 | 目录 |
read_dir() |
读取目录条目 | 目录 |
依赖项
~205KB