如何使用C在Linux中获取更多文件的vfat属性?

时间:2009-10-30 05:10:07

标签: c linux

这是我在这里的另一个问题的后续行动:

How to read vfat attributes of files in Linux using C

-

我在linux / msdos_fs.h中看到了这个结构:

struct msdos_dir_entry {
   __u8  name[8],ext[3];   /* name and extension */
   __u8  attr;    /* attribute bits */
   __u8    lcase;    /* Case for base and extension */
   __u8  ctime_cs;   /* Creation time, centiseconds (0-199) */
   __le16   ctime;      /* Creation time */
   __le16   cdate;      /* Creation date */
   __le16   adate;      /* Last access date */
   __le16   starthi; /* High 16 bits of cluster in FAT32 */
   __le16   time,date,start;/* time, date and first cluster */
   __le32   size;    /* file size (in bytes) */
};

我的问题是,是否可以在我的用户应用程序中填充这样的结构?我的应用程序要求是它应该能够遍历vfat文件系统,并为它找到的每个目录/文件获取vfat属性(msdos_dir_entry)。

感谢。

1 个答案:

答案 0 :(得分:4)

实际上,你可以通过组合从fstat(),FAT_IOCTL_GET_ATTRIBUTES和VFAT_IOCTL_READDIR_BOTH ioctls获得的信息来获得几乎所有这些。但是看起来并不好看,因为对于fromer 2你需要文件fd而后两个你需要文件所在的dir的fd。