int ff_stat( const char *pcFileName, ff_stat_struct *pxStatBuffer );
Populates an ff_stat_struct with information about a file.
ff_stat_struct contains the fileds shown in the table below:
|
Field
|
Description
|
| st_dev |
The Device ID of the device containing the file.
(_RB_ Actually set to xFindData.dirHandler.fsIndex. Could that be described as the index of the mount within the file system - where 0 is the root of the file system?) |
| st_ino |
The file's serial number.
(_RB_ Actually set to xFindData.dirent->ulObjectCluster. Could that be described as the number of the cluster containing the start of the file.) |
| st_mode | If the file is a directory then st_mode will be set to FF_IFDIR. Otherwise st_mode will be set to FF_IFREG (regular). |
| st_nlink |
Number of hard links to the file
Hard coded to 1. Can st_nlink be removed from the strucutre. |
| st_uid |
User ID of file
(_RB_ Actually hard coded to 0x1FF. Can st_uid just be removed from the stat structure?) |
| st_gid |
Group ID of the file
(_RB_ Actually hard coded to 0x1FF. Can st_uid just be removed from the stat structure?) |
| st_rdev |
Device ID
(_RB_ Duplicate of st_dev. Can st_rdev be removed from the stat structure?) |
| st_size | The size of the file in bytes. ff_stat() cannot be used to obtain the size of an open file. |
| st_atime | The time the file was last accessed. Only available if FF_TIME_SUPPORT is set to 1 in FreeRTOSFATConfig.h. |
| st_mtime | The time the file was last modified. Only available if FF_TIME_SUPPORT is set to 1 in FreeRTOSFATConfig.h. |
| st_ctime | The time the status of the file last changed. Only available if FF_TIME_SUPPORT is set to 1 in FreeRTOSFATConfig.h. |
Parameters:
| pcFileName |
A pointer to a standard null terminated C string that holds
the name of the file on which stat information is being
retrieved. The file name can include a relative path to
the directory.
|
| pxStatBuffer |
A pointer to the ff_stat_struct to fill with information
on the file.
|
If the stat structure was populated with information about the file then zero is returned.
If the stat structure could not be populated with information about the file then -1 is returned and the task's errno is set to indicate the reason. A task can obtain its errno value using the ff_errno() API function.
Example usage:
long lGetFileLength( char *pcFileName ) { ff_stat_struct 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