文件系统

优质
小牛编辑
141浏览
2023-12-01

文件系统接口

函数

int dfs_init (void)
 初始化文件系统
 
void dfs_lock (void)
 锁定文件系统
 
void dfs_unlock (void)
 解锁文件系统
 
const char * dfs_subdir (const char *directory, const char *filename)
 获取子目录
 
char * dfs_normalize_path (const char *directory, const char *filename)
 获取完整路径
 
int dfs_register (const struct dfs_filesystem_ops *ops)
 注册文件系统
 
struct dfs_filesystem * dfs_filesystem_lookup (const char *path)
 查找指定路径上的文件系统
 
const char * dfs_filesystem_get_mounted_path (struct rt_device *device)
 返回挂载路径
 
int dfs_filesystem_get_partition (struct dfs_partition *part, uint8_t *buf, uint32_t pindex)
 获取分区表
 
int dfs_mount (const char *device_name, const char *path, const char *filesystemtype, unsigned long rwflag, const void *data)
 挂载文件系统
 
int dfs_unmount (const char *specialfile)
 卸载文件系统
 
int dfs_mkfs (const char *fs_name, const char *device_name)
 格式化文件系统
 

详细描述

文件系统接口

函数说明

void dfs_lock(void )

锁定文件系统

注解
请不要在中断上下文中调用。
void dfs_unlock(void )

解锁文件系统

注解
请不要在中断上下文中调用。
const char* dfs_subdir(const char * directory,
const char * filename 
)

获取子目录

此函数将根据指定的父目录和文件名返回子目录名称。

参数
directory父目录路径
filename文件名
返回
子目录名称
char* dfs_normalize_path(const char * directory,
const char * filename 
)

获取完整路径

此函数将根据指定的父目录和文件名返回完整路径。

参数
directory父目录路径
filename文件名
返回
生成的完整路径 (绝对路径)
int dfs_register(const struct dfs_filesystem_ops * ops)

注册文件系统

在使用文件系统之前需要将文件系统注册到DFS框架中,可以调用该函数来实现。

参数
ops文件系统操作方法句柄
返回
0 注册成功,-1 失败。
struct dfs_filesystem* dfs_filesystem_lookup(const char * path)

查找指定路径上的文件系统

此函数将返回挂载在指定路径上的文件系统。

参数
path路径字符串。
返回
成功返回挂载的文件系统句柄,失败则返回NULL。
const char* dfs_filesystem_get_mounted_path(struct rt_devicedevice)

返回挂载路径

此函数将返回指定设备挂载路径。

参数
device已挂载的设备对象。
返回
成功返回已挂载路径;失败则返回NULL。
int dfs_filesystem_get_partition(struct dfs_partition * part,
uint8_t * buf,
uint32_t pindex 
)

获取分区表

此函数将获取指定缓冲区上的分区表。

参数
part返回的分区表结构。
buf存储分区表的缓冲区。
pindex要获取的分区表的索引。
返回
RT_EOK 成功;-RT_ERROR 失败。
int dfs_mount(const char * device_name,
const char * path,
const char * filesystemtype,
unsigned long rwflag,
const void * data 
)

挂载文件系统

该函数会将文件系统和具体的存储设备关联起来。

参数
device_name一个包含了文件系统的设备名
path挂载文件系统的路径,即挂载点
filesystemtype需要挂载的文件系统类型
rwflag读写标志位
data文件系统的私有数据
返回
0 挂载成功,-1 失败。
int dfs_unmount(const char * specialfile)

卸载文件系统

当某个文件系统不需要再使用了,那么可以调用该函数将它卸载掉。

参数
specialfile挂载了文件系统的指定路径
返回
0 卸载成功,-1 失败。
int dfs_mkfs(const char * fs_name,
const char * device_name 
)

格式化文件系统

使用文件系统功能前,要先在存储器中创建指定类型的文件系统。

参数
fs_name文件系统名
device_name需要格式化文件系统的设备名
返回
0 格式化成功,-1 失败。