c - 如何使用C在Linux中获取已安装驱动器的卷名?

标签 c linux

我目前正在编写程序,该程序必须显示有关已安装闪存驱动器的信息。我想显示完整空间、可用空间、文件系统类型和卷名称。但问题是,我找不到任何可以获取卷名称(卷标签)的 API。有没有API可以做到这一点?

附:我通过 statfs 函数获取的完整空间、可用空间和文件系统类型

最佳答案

假设您使用最新的类似桌面的发行版(Fedora、Ubuntu 等),您将运行 HAL 守护进程和 D-Bus session 。

org.freedesktop.UDisks命名空间中,您可以找到代表此驱动器的对象(例如org/freedekstop/UDisks/devices/sdb/。它实现org.freedesktop.UDisks.interface。该接口(interface)拥有您能想到的所有属性,包括 UUID (IdUuid)、FAT 标签 (IdLabel) ,有关文件系统、SMART 状态(如果驱动器支持)等的所有详细信息。

如何在 C 中使用 D-Bus API 是另一个问题的主题。我想这已经被详细讨论过——只需搜索 [dbus] 和 [c] 标签即可。

关于c - 如何使用C在Linux中获取已安装驱动器的卷名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5548060/

相关文章:

c - 嵌入式编程

c - 我怎样才能生成这样的 map ?

linux - 由于 expat,我无法配置 dbus

linux - 检查 D.userid 是否存在于目录 shell 中

linux - 安装centos7时内核崩溃

c - 找到给定区间 [a,b) - C 中的所有 Carmichael 数

c++ - 共享内存 (SHM) 中的 OpenSSL session 池可能吗?

linux - stdin 进入 zip 命令,如何指定文件名?

linux - 如何知道我使用的是哪个 Linux 发行版?

c - 如何在 GCM 模式下使用 AES 链接 BCryptEncrypt 和 BCryptDecrypt 调用?