mh *_*qia 0 macos xcode cocoa objective-c core-foundation
我可以通过以下代码检索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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码检索disk0的UUID,我想检索根磁盘的UUID(挂载点= /),如果我使用"/"代替"/ dev/disk0s2",那么DADiskCopyDescription返回NULL.此外,我知道我可以通过此命令在终端中执行此操作:
diskutil info /
Run Code Online (Sandbox Code Playgroud)
简单地说,如何检索根磁盘的BSD名称?(在DADiskCreateFromBSDName中使用它)
有人有想法吗?谢谢.
使用DADiskCreateFromVolumePath而不是DADiskCreateFromBSDName:
char *mountPoint = "/";
CFURLRef url = CFURLCreateFromFileSystemRepresentation(NULL, (const UInt8 *)mountPoint, strlen(mountPoint), TRUE);
disk = DADiskCreateFromVolumePath(NULL, session, url);
CFRelease(url);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |