xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_vfs.h 文件参考

xt 虚拟文件系统——支持多后端挂载、两级锁、静态/动态内存切换 更多...

#include <stdint.h>
#include "xt_vfs_port.h"

浏览该文件的源代码.

结构体

struct  xt_vfs_stat
 文件状态信息 更多...
struct  xt_vfs_statfs
 文件系统状态信息 更多...
struct  xt_vfs_utimbuf
 文件时间信息 更多...
struct  xt_vfs_dirent
 目录项信息 更多...
struct  xt_vfs_ops

宏定义

#define XT_VFS_O_RDONLY   0x01
 只读
#define XT_VFS_O_WRONLY   0x02
 只写
#define XT_VFS_O_RDWR   0x04
 读写
#define XT_VFS_O_CREAT   0x08
 创建,不存在时创建
#define XT_VFS_O_EXCL   0x10
 排他,与 O_CREAT 一起使用时文件存在则失败
#define XT_VFS_O_TRUNC   0x20
 截断,文件存在且可写时清空内容
#define XT_VFS_O_APPEND   0x40
 追加,写入定位到文件末尾
#define XT_VFS_TYPE_REG   0x01
 普通文件
#define XT_VFS_TYPE_DIR   0x02
 目录
#define XT_VFS_TYPE_UNKNOWN   0xFF
 未知类型
#define XT_VFS_F_OK   0x00
 文件存在性检查
#define XT_VFS_R_OK   0x04
 读权限检查
#define XT_VFS_W_OK   0x02
 写权限检查
#define XT_VFS_X_OK   0x01
 执行权限检查
#define XT_VFS_S_IFMT   0xF000
 文件类型掩码
#define XT_VFS_S_IFREG   0x1000
 普通文件
#define XT_VFS_S_IFDIR   0x2000
 目录
#define XT_VFS_S_IRWXU   0x01C0
 用户读/写/执行
#define XT_VFS_S_IRUSR   0x0100
 用户读
#define XT_VFS_S_IWUSR   0x0080
 用户写
#define XT_VFS_S_IXUSR   0x0040
 用户执行
#define XT_VFS_S_IRWXG   0x0038
 组读/写/执行
#define XT_VFS_S_IRGRP   0x0020
 组读
#define XT_VFS_S_IWGRP   0x0010
 组写
#define XT_VFS_S_IXGRP   0x0008
 组执行
#define XT_VFS_S_IRWXO   0x0007
 其他读/写/执行
#define XT_VFS_S_IROTH   0x0004
 其他读
#define XT_VFS_S_IWOTH   0x0002
 其他写
#define XT_VFS_S_IXOTH   0x0001
 其他执行
#define XT_VFS_S_DEFAULT_FILE   (XT_VFS_S_IFREG | XT_VFS_S_IRUSR | XT_VFS_S_IWUSR | XT_VFS_S_IRGRP | XT_VFS_S_IROTH)
 普通文件默认权限(所有者读写+组读+其他读)
#define XT_VFS_S_DEFAULT_DIR   (XT_VFS_S_IFDIR | XT_VFS_S_IRWXU | XT_VFS_S_IRGRP | XT_VFS_S_IXGRP | XT_VFS_S_IROTH | XT_VFS_S_IXOTH)
 目录默认权限(所有者全权限+组读执行+其他读执行)
#define XT_VFS_SEEK_SET   0
 从文件头开始
#define XT_VFS_SEEK_CUR   1
 从当前位置
#define XT_VFS_SEEK_END   2
 从文件末尾
#define XT_VFS_ERR_OK   0
 成功
#define XT_VFS_ERR_EOF   -1
 文件结束
#define XT_VFS_ERR_NOTFOUND   -2
 文件或目录不存在
#define XT_VFS_ERR_EXIST   -3
 文件已存在
#define XT_VFS_ERR_NOSPC   -4
 磁盘空间不足
#define XT_VFS_ERR_NOMEM   -5
 内存不足
#define XT_VFS_ERR_IO   -6
 IO 错误
#define XT_VFS_ERR_INVAL   -7
 无效参数
#define XT_VFS_ERR_DENIED   -8
 权限拒绝
#define XT_VFS_ERR_NFILE   -9
 打开文件过多
#define XT_VFS_ERR_NOTDIR   -10
 不是目录
#define XT_VFS_ERR_ISDIR   -11
 是目录
#define XT_VFS_ERR_NOTEMPTY   -12
 目录非空
#define XT_VFS_ERR_BUSY   -13
 设备忙
#define XT_VFS_ERR_NOSYS   -14
 功能未实现
#define XT_VFS_INVALID_FD   ((xt_vfs_fd_t)(-1))
 无效文件描述符

类型定义

typedef int32_t xt_vfs_err_t
 错误码类型,详细错误码见 XT_VFS_ERR_* 系列宏
typedef int32_t xt_vfs_fd_t
 文件描述符类型,内部编码 generation+index,由 VFS Core 生成,用户不应自行构造
typedef uint32_t xt_vfs_size_t
 文件大小类型(无符号)
typedef int32_t xt_vfs_ssize_t
 文件大小类型(有符号)
typedef uint32_t xt_vfs_mode_t
 文件模式类型(权限 + 类型)
typedef uint32_t xt_vfs_time_t
 时间类型(固定 32 位)
typedef int32_t xt_vfs_off_t
 偏移量类型
typedef int32_t xt_vfs_whence_t
 寻址基准类型
typedef int32_t xt_vfs_ino_t
 inode 编号类型
typedef struct xt_vfs_stat xt_vfs_stat_t
 文件状态信息
typedef struct xt_vfs_statfs xt_vfs_statfs_t
 文件系统状态信息
typedef struct xt_vfs_utimbuf xt_vfs_utimbuf_t
 文件时间信息
typedef struct xt_vfs_dir xt_vfs_dir_t
 目录句柄(opaque,内部字段不暴露)
typedef struct xt_vfs_dirent xt_vfs_dirent_t
 目录项信息
typedef struct xt_vfs_ops xt_vfs_ops_t
 后端操作接口(前向声明)
typedef struct xt_vfs xt_vfs_t
 VFS 实例(前向声明)

函数

生命周期
注解
本库采用直接返回错误码模式(非 POSIX 的返回-1+设errno)。成功返回 0/~0,失败返回负值 XT_VFS_ERR_*。可通过 xt_vfs_errno() 获取上次错误详情。
xt_vfs_err_t xt_vfs_init (const xt_vfs_config_t *config)
 初始化 VFS 实例
xt_vfs_err_t xt_vfs_deinit (void)
 销毁 VFS 实例
挂载管理
xt_vfs_err_t xt_vfs_mount (const char *path, const xt_vfs_ops_t *ops, void *ctx)
 挂载后端文件系统
xt_vfs_err_t xt_vfs_unmount (const char *path)
 卸载后端文件系统
文件读写
xt_vfs_fd_t xt_vfs_open (const char *path, xt_vfs_mode_t flags)
 打开文件
xt_vfs_err_t xt_vfs_close (xt_vfs_fd_t fd)
 关闭文件
xt_vfs_ssize_t xt_vfs_read (xt_vfs_fd_t fd, void *buf, xt_vfs_size_t size)
 读取文件
xt_vfs_ssize_t xt_vfs_write (xt_vfs_fd_t fd, const void *buf, xt_vfs_size_t size)
 写入文件
xt_vfs_ssize_t xt_vfs_seek (xt_vfs_fd_t fd, xt_vfs_off_t offset, xt_vfs_whence_t whence)
 文件定位
xt_vfs_ssize_t xt_vfs_tell (xt_vfs_fd_t fd)
 获取当前文件位置
xt_vfs_err_t xt_vfs_fsync (xt_vfs_fd_t fd)
 同步单个文件到存储设备
文件信息与管理
xt_vfs_err_t xt_vfs_remove (const char *path)
 删除文件
xt_vfs_err_t xt_vfs_rename (const char *old_path, const char *new_path)
 重命名文件
xt_vfs_err_t xt_vfs_stat (const char *path, xt_vfs_stat_t *stat)
 获取文件状态
xt_vfs_err_t xt_vfs_fstat (xt_vfs_fd_t fd, xt_vfs_stat_t *stat)
 获取已打开文件的状态
xt_vfs_err_t xt_vfs_statfs (const char *path, xt_vfs_statfs_t *statfs)
 获取文件系统状态
xt_vfs_err_t xt_vfs_truncate (const char *path, xt_vfs_off_t length)
 截断文件到指定大小
xt_vfs_err_t xt_vfs_ftruncate (xt_vfs_fd_t fd, xt_vfs_off_t length)
 截断已打开的文件
xt_vfs_err_t xt_vfs_access (const char *path, xt_vfs_mode_t amode)
 检查文件访问权限
xt_vfs_err_t xt_vfs_utime (const char *path, const xt_vfs_utimbuf_t *buf)
 更新文件时间
xt_vfs_err_t xt_vfs_sync_all (const char *path)
 同步所有文件到存储设备
目录操作
xt_vfs_err_t xt_vfs_mkdir (const char *path)
 创建目录
xt_vfs_err_t xt_vfs_rmdir (const char *path)
 删除空目录
xt_vfs_dir_t * xt_vfs_opendir (const char *path)
 打开目录
xt_vfs_err_t xt_vfs_closedir (xt_vfs_dir_t *dir)
 关闭目录
xt_vfs_dirent_t * xt_vfs_readdir (xt_vfs_dir_t *dir)
 读取目录项
xt_vfs_err_t xt_vfs_rewinddir (xt_vfs_dir_t *dir)
 重置目录读取位置
xt_vfs_off_t xt_vfs_telldir (xt_vfs_dir_t *dir)
 获取目录读取位置
xt_vfs_err_t xt_vfs_seekdir (xt_vfs_dir_t *dir, xt_vfs_off_t loc)
 设置目录读取位置
工作目录
xt_vfs_err_t xt_vfs_chdir (const char *path)
 切换当前工作目录
char * xt_vfs_getcwd (char *buf, xt_vfs_size_t size)
 获取当前工作目录
错误与状态
xt_vfs_err_t xt_vfs_errno (void)
 获取当前线程的最后一个错误码
const char * xt_vfs_strerror (xt_vfs_err_t err)
 获取错误码对应的字符串描述
bool xt_vfs_is_active (void)
 检查 VFS 实例是否已激活

详细描述

xt 虚拟文件系统——支持多后端挂载、两级锁、静态/动态内存切换

作者
your name (you@d.nosp@m.omai.nosp@m.n.com)
版本
0.1
日期
2026-06-16

SPDX-FileCopyrightText: 2026 深圳市天工聚创科技有限公司 SPDX-License-Identifier: Apache-2.0

在文件 xt_vfs.h 中定义.