从macOS上的dev_t获取设备文件系统路径

时间:2019-02-20 16:17:12

标签: c macos darwin

如果在macOS(Darwin)上具有32位整数BSD设备编号dev_t(例如0x1000004),如何获取该设备的相应文件系统路径(例如“ / dev / disk1s4”)?

2 个答案:

答案 0 :(得分:2)

您必须枚举已挂载的文件系统,并查找与设备ID匹配的设备。您可以使用getfsstat()进行枚举。这将填充struct statfs结构。将每个结构的字段f_fsid.val[0]与您要查找的dev_t进行比较。如果它们匹配,则struct statfs是您要查找的设备的那个,您可以检查其其他字段以查找所需的信息。特别是,f_mntfromname是设备路径。

答案 1 :(得分:1)

find /dev -type b -ls

,然后检查输出是否为主要/次要== {0x1000,4}


或者:find / -type b -ls(如果需要搜索整个文件系统)。

顺便说一句:引用相同的{major,minor}组合可能会有更多条目。