Если у меня есть 32-разрядное целочисленное BSD-устройство dev_t (например, 0x1000004) в macOS (Дарвин), как я могу получить соответствующий путь файловой системы для этого устройства (например, "/ dev / disk1s4")?
find /dev -type b -ls
, и проверьте вывод для major / minor == {0x1000,4}
Или: find / -type b -ls, если необходимо выполнить поиск по всей файловой системе.
find / -type b -ls
КСТАТИ: может быть больше записей, относящихся к той же комбинации {major, minor}.
Вы должны перечислить смонтированные файловые системы и найти того, кто соответствует идентификатору устройства.Вы можете использовать getfsstat() для перечисления.Это заполняет struct statfs структуры.Сравните поле f_fsid.val[0] каждой структуры с dev_t, которое вы ищете.Если они совпадают, то это struct statfs для устройства, которое вы ищете, и вы можете проверить его другие поля для информации, которую вы ищете.В частности, f_mntfromname - это путь к устройству.
getfsstat()
struct statfs
f_fsid.val[0]
dev_t
f_mntfromname