ff_stdio.h
int ff_stat( const char *pcFileName, ff_stat_struct *pxStatBuffer );
使用文件的相关信息填充 ff_stat_struct。
ff_stat_struct 包含的字段如下表所示:
字段
|
说明
|
st_dev |
包含文件的设备的设备 ID。(_RB_ Actually 设置为 xFindData.dirHandler.fsIndex。是否
可以将其描述为文件系统中挂载的索引,
其中 0 是文件系统的根目录?) |
st_ino |
文件的序列号。(_RB_ Actually 设置为 xFindData.dirent->ulObjectCluster.。是否
可以将其描述为
包含文件开头的簇编号?) |
st_mode |
如果文件是目录,则 st_mode 将
设置为 FF_IFDIR。否则 st_mode 将设置为 FF_IFREG(常规)。 |
st_nlink |
文件硬链接的数量硬编码为 1。可从结构体中删除 st_nlink。 |
st_uid |
文件的用户 ID(_RB_ Actually 硬编码为 0x1FF。是否可以从 stat 结构体
中删除 st_uid?) |
st_gid |
文件的组 ID (_RB_ Actually 硬编码为 0x1FF。是否可以从 stat 结构体
中删除 st_uid?) |
st_rdev |
设备 ID (st_dev 的 _RB_ Duplicate。是否可以从 stat 结构体中
删除 st_rdev?) |
st_size |
文件的大小(以字节为单位)。ff_stat() 无法用于
获取打开文件的大小。 |
st_atime |
上次访问文件的时间。
仅当 FreeRTOSFATConfig.h 中的 FF_TIME_SUPPORT 设置为 1 时才可用。 |
st_mtime |
上次修改文件的时间。
仅当 FreeRTOSFATConfig.h 中的 FF_TIME_SUPPORT 设置为 1 时才可用。 |
st_ctime |
上次更改文件状态的时间。
仅当 FreeRTOSFATConfig.h 中的 FF_TIME_SUPPORT 设置为 1 时才可用。 |
参数:
pcFileName
|
指向以 null 结尾的标准 C 字符串的指针,该字符串包含
正在检索其 stat 信息的
文件名称。文件名可以包含目录
的相对路径。 |
pxStatBuffer
|
指向 ff_statt_struct 的指针,用于填充
文件信息。 |
返回:
如果 stat 结构体中填充了文件的相关信息,
则返回零。
如果无法使用文件的相关
信息填充 stat 结构体,则返回 -1,
并设置任务的
errno 以指示原因。任务
可以使用
stdioGET_ERRNO() API 函数
获取其 errno 值。
用法示例:
long lGetFileLength( char *pcFileName )
{
ff_stat_struct xStat;
long lReturn;
if( ff_stat( pcFileName, &xStat ) == 0 )
{
lReturn = xStat.st_size;
}
else
{
lReturn = -1;
}
return lReturn;
}
Example use of the ff_stat() API function
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.