gpt4 book ai didi

c - 如何使用 C 在 Linux 中读取文件的 vfat 属性

转载 作者:IT王子 更新时间:2023-10-29 01:12:12 26 4
gpt4 key购买 nike

我在 Linux 中使用 vfat 驱动程序安装了一个 FAT 文件系统。我想知道如何读取文件的 vfat 属性,例如“隐藏”和“只读”。

根据我目前所读到的内容,如果我对文件使用 stat() glibc 命令,我只会获得此处列出的文件属性: http://www.gnu.org/s/libc/manual/html_node/Attribute-Meanings.html#Attribute-Meanings

但是这些不包含任何 vfat 属性。有人可以帮忙吗?

谢谢,

炸 pig 排

最佳答案

FAT 的 DOS 属性不能很好地映射到 UNIX 文件系统模型,因此 Linux 的 vfat 驱动程序不能反射(reflect)它们。

不挂载文件系统,使用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);

关于c - 如何使用 C 在 Linux 中读取文件的 vfat 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com