在stat.h中定义的结构体
struct stat
{
struct rt_device *st_dev;
uint16_t st_ino;
uint16_t st_mode;
uint16_t st_nlink;
uint16_t st_uid;
uint16_t st_gid;
struct rt_device *st_rdev;
uint32_t st_size;
time_t st_atime;
long st_spare1;
time_t st_mtime;
long st_spare2;
time_t st_ctime;
long st_spare3;
uint32_t st_blksize;
uint32_t st_blocks;
long st_spare4[2];
};
其中的st_mode成员的数据类型为uint6_t,但在代码中st_mode需要与S_IFDIR
进行或操作,S_IFDIR
的定义为
#define S_IFDIR 0x0040000
已经超出了uint16_t
的定义,所以st_mode的数据类型需要更改为uint32_t