以编程方式检索OS X磁盘分区UUID

sur*_*ran 4 macos uuid volume diskarbitration

我有一个分区的路径.如何在不使用终端命令的情况下以编程方式检索该分区的UUID?一个例子会更有帮助.

use*_*368 7

$ diskutil info / | grep UUID

从C运行这个是留给读者的练习.

如果您想要除根之外的分区,则可以指定安装点或设备名称(例如disk0s2)来代替/.


Dan*_*Dan 5

您可以使用Disk Arbitration框架(Apple参考).Chris Suter 在这篇博客中也有一个很好的总结.

您可以使用kDADiskDescriptionMediaUUIDKey获取UUID.Aaron Burghardt在这个邮件列表主题中描述得很好.以下是该链接的引用:

获得DADisk后,使用DADiskCopyDescription获取属性字典,在其中您将找到具有密钥kDADiskDescriptionMediaUUIDKey的UUID(有关可能感兴趣的其他密钥,请参阅DADisk.h).注意,DADisk是IOMedia对象的包装器,描述字典直接对应于IOMedia对象中的属性.此外,CFShow()对于将描述字典打印到控制台很有用.