Атрибуты DAT FAT плохо сопоставляются с моделью файловой системы UNIX, поэтому драйвер vfat
в Linux не отражает их.
Вместо монтирования файловой системы используйте mtools для чтения файловой системы из пространства пользователя.
Редактировать Я солгал. Очевидно, что драйвер vfat
может работать с этими атрибутами DOS, по крайней мере, с 2.4.29 (я думаю, мои исторические журналы не уходят так далеко).
#include <inttypes.h>
#include <sys/ioctl.h>
#include <linux/msdos_fs.h>
int fd = open("/mnt/fat/...", ...);
__u32 attrs;
ioctl(fd, FAT_IOCTL_GET_ATTRIBUTES, &attrs);
attrs = ATTR_NONE; /* ATTR_{RO,HIDDEN,SYS,VOLUME,DIR,ARCH} */
ioctl(fd, FAT_IOCTL_SET_ATTRIBUTES, &attrs);