下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

ff_stat() [FreeRTOS-Plus-FAT 标准 API 引用]

ff_stdio.h  
int ff_stat( const char *pcFileName, FF_Stat_t *pxStatBuffer );

使用文件的相关信息填充 FF_Stat_t。FF_Stat_t 包含的字段如下表所示:

字段
说明
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_Stat_t 的指针,用于填充 文件信息。 

返回:

  • 如果 stat 结构体中填充了文件的相关信息,则返回 0。
  • 如果 stat 结构体无法填充文件信息,则返回 -1,并设置任务 errno 以指示原因。任务可以使用 stdioGET_ERRNO() API 函数获取其 errno 值。

用法示例:


long lGetFileLength( char *pcFileName )
{
FF_Stat_t xStat;
long lReturn;

/* Find the length of the file with name pcFileName. */
if( ff_stat( pcFileName, &xStat ) == 0 )
{
lReturn = xStat.st_size;
}
else
{
/* Could not obtain the length of the file. */
lReturn = -1;
}

return lReturn;
}

Example use of the ff_stat() API function
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.