Получить путь к файловой системе устройства из dev_t в macOS - PullRequest
0 голосов
/ 20 февраля 2019

Если у меня есть 32-разрядное целочисленное BSD-устройство dev_t (например, 0x1000004) в macOS (Дарвин), как я могу получить соответствующий путь файловой системы для этого устройства (например, "/ dev / disk1s4")?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019
find /dev -type b -ls

, и проверьте вывод для major / minor == {0x1000,4}


Или: find / -type b -ls, если необходимо выполнить поиск по всей файловой системе.

КСТАТИ: может быть больше записей, относящихся к той же комбинации {major, minor}.

0 голосов
/ 20 февраля 2019

Вы должны перечислить смонтированные файловые системы и найти того, кто соответствует идентификатору устройства.Вы можете использовать getfsstat() для перечисления.Это заполняет struct statfs структуры.Сравните поле f_fsid.val[0] каждой структуры с dev_t, которое вы ищете.Если они совпадают, то это struct statfs для устройства, которое вы ищете, и вы можете проверить его другие поля для информации, которую вы ищете.В частности, f_mntfromname - это путь к устройству.

...