gpt4 book ai didi

macos - 使用来自 OS X 的 IOKit 框架的卷 UUID

转载 作者:行者123 更新时间:2023-12-01 09:32:31 26 4
gpt4 key购买 nike

我想获取/枚举安装在我的 OS X 系统上的卷的 UUID。我知道我可以使用 diskutil 命令来获取它,如下所示。

$ diskutil info / |grep "Volume UUID"
Volume UUID: 039B9653-52AA-34F3-AF4A-854FA47C811A

但是,我想使用 IOKit 框架以可编程的方式(也许)实现它。如果有人能告诉我该怎么做,那将非常有帮助。

非常感谢您的提前帮助!

最佳答案

感谢@pmdj 的回答,我可以使用以下代码片段解决我的问题。

void printUUID()
{
DADiskRef disk;
CFDictionaryRef descDict;

DASessionRef session = DASessionCreate(NULL);

std::string mountPoint = "/";
CFURLRef url = CFURLCreateFromFileSystemRepresentation(NULL, (const UInt8 *) mountPoint.c_str(), mountPoint.length(), TRUE);
disk = DADiskCreateFromVolumePath(NULL, session, url);
if (disk) {
descDict = DADiskCopyDescription(disk);
if (descDict) {
CFTypeRef value = (CFTypeRef)CFDictionaryGetValue(descDict,
CFSTR("DAVolumeUUID"));
CFStringRef strValue = CFStringCreateWithFormat(NULL, NULL,
CFSTR("%@"), value);
printf("%s\n" ,CFStringGetCStringPtr(strValue, kCFStringEncodingMacRoman));
CFRelease(strValue);
CFRelease(descDict);
}
CFRelease(disk);
}

CFRelease(url);
CFRelease(session);
}

关于macos - 使用来自 OS X 的 IOKit 框架的卷 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32851066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com