我可以通过以下代码检索 OS X 磁盘分区 UUID:
void PrintUUID()
{
DADiskRef disk;
CFDictionaryRef descDict;
DASessionRef session = DASessionCreate(NULL);
if (session) {
disk = DADiskCreateFromBSDName(NULL, session, "/dev/disk0s2");
if (disk) {
descDict = DADiskCopyDescription(disk);
if (descDict) {
CFTypeRef value = (CFTypeRef)CFDictionaryGetValue(descDict,
CFSTR("DAVolumeUUID"));
CFStringRef strValue = CFStringCreateWithFormat(NULL, NULL,
CFSTR("%@"), value);
print(strVal); <------------- here is the output
CFRelease(strValue);
CFRelease(descDict);
}
CFRelease(disk);
}
}
}
上面的代码检索disk0的UUID,我想检索根磁盘的UUID(挂载点= /),如果我使用“/”而不是“/dev/disk0s2”,那么DADiskCopyDescription返回NULL。我也知道我可以通过以下命令在终端中执行此操作:
diskutil info /
简而言之,如何检索根磁盘的 BSD 名称?(在 DADiskCreateFromBSDName 中使用它)
有人有想法吗?谢谢。