当前位置: 首页 > 面试题库 >

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

吕嘉赐
2023-03-14
问题内容

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

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

但是,它们不包含任何vfat属性。有人可以帮忙吗?

谢谢,

Katsupoy


问题答案:

FAT的DOS属性无法很好地映射到UNIX文件系统模型,因此Linux的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);


 类似资料:
  • 问题内容: 我正在寻找解决上述问题的解决方案。 这是我的“无效代码”。charsInCurrentBuffer始终返回-1! 问题答案: 当你从FD中,“用户的定位缓冲区和文件偏移都必须是文件系统的逻辑块大小的倍数”(引自手册页在Linux上)。其他环境对此可能有不同的约束,并且实际上是依赖于文件系统的。 通常情况并非如此(除非您很幸运)。 如果平台具有该功能,则应考虑使用该功能,或者只是分配一个

  • 问题内容: 我希望读取特定文件夹中的所有文本文件。文件名中没有任何通用模式-否则任务会更容易。 如果我也可以处理子文件夹,那将是很好,但是即使是基本的实现也已足够。 我尝试查看先前询问的相关问题,但是没有一个给出我需要的C和Linux特定答案。 编辑 :所以,这是我根据收到的答案写的- 并收到 错误 -pnp @ pnp-laptop:〜/ snort_rules_folder $ ./a.out

  • 问题内容: 在发布此问题之前,我用Google搜索Spring项目(不是基于Web的项目)中的属性。我很困惑,因为每个人都在谈论application- context.xml并具有类似的配置 但是,我正在使用Spring进行普通的Java项目(没有Web应用程序之类的东西)。但是我想从属性文件中获取一些通用属性,并且需要在JAVA文件中使用。如何通过使用Spring / Spring注释实现此目

  • 每个人都知道如果我们想要读取属性文件,我们可以这样做: 但是,现在我有了一个类似于SpringBoot的框架。它可以将Spring与Mybatis集成在一起。 问题是前面的代码只能读取我的项目类路径文件,但我需要使用我的框架读取project属性文件。我是怎么做的?

  • 问题内容: 如何使用C ++获取Linux文件系统上文件的所有者名称和组名称?该呼叫仅提供了所有者ID和组ID,但没有提供实际名称。 如何以编程方式获取“ john”和“ devl”? 问题答案: 使用和。

  • 我的任务是从txt文件中获取输入,并将其读入结构数组的一部分,然后对其进行操作,但我在读取该文件时遇到了问题。 我的结构如下: 在我的主要观点中:我定义最大值为100 下面是我们要读取的txt文件: 所以我在fscanf的准确性方面遇到了一些问题。要检查worker包含的内容,我使用了printf(“%s”,worker[0]。first)和printf(“%c”,worker[0]。initia