Gibt es eine Möglichkeit, die BSD-Nummer eines Geräts unter Mac OS X zu bekommen?
Frage
Ihr Programm liest Gerätepfade wie /dev/rdisk0
von Eingang und dann sieht es in IOKit
für eine Platte mit der BSD Namen disk0
. Dazu muss ich /dev/r
vom Weg entfernen.
Codierung Fest dieses Weges in zukünftigen Versionen von Mac OS X. brechen kann deshalb ich allerdings einen anderen Weg: könnte ich die IOService
Übereinstimmen mit der BSD-Major und Minor-Version des Geräts
Hier ist meine Frage: Ist es möglich, die BSD kleinere und größere Zahlen von einem Pfad zu extrahieren
?Lösung
Ja. Verwenden Sie die stat
syscall. Das Mitglied der struct stat
Sie suchen ist st_dev
, die meiner Meinung nach eine OR wichtiger ist und Moll nach einer Bitverschiebung.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow