我使用vfat驱动程序将FAT文件系统安装在Linux中。我想知道如何读取文件的vfat属性,例如“隐藏”和“只读”。
根据到目前为止的读物,如果我stat()在文件上使用glibc命令,则只会得到此处列出的文件属性:http : //www.gnu.org/s/libc/manual/html_node/Attribute -Meanings.html#Attribute- Meanings
stat()
但是,它们不包含任何vfat属性。有人可以帮忙吗?
谢谢,
Katsupoy
FAT的DOS属性无法很好地映射到UNIX文件系统模型,因此Linux的vfat驱动程序无法反映它们。
vfat
不用挂载文件系统,而是使用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);