我需要在10.4上获取UUID值,但这里似乎不支持该命令。
ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }'
以上命令在10.5上运行正常。这不支持10.4吗?
此外,我正在尝试使用10.4上的以下代码获取UUID,这也无效:
void vlm_getSystemUUID_MAC(char * uuid, int bufSize)
{
io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/");
CFStringRef uuidCf = (CFStringRef) IORegistryEntryCreateCFProperty(ioRegistryRoot, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0);
IOObjectRelease(ioRegistryRoot);
CFStringGetCString(uuidCf, uuid, bufSize, kCFStringEncodingMacRoman);
CFRelease(uuidCf);
}
上面的代码在10.5上运行良好。
任何帮助将不胜感激。
答案 0 :(得分:0)
我相信IOPlatformUUID
首次被添加到Mac OS X 10.5 Leopard中,并且在以前的版本中不可用(如果我错了,有人请纠正我)。 This blog post暗示此更改已添加到10.5。
要识别运行Mac OS X 10.4及更早版本的Mac,您必须使用IOPlatformSerialNumber
和/或内置MAC地址。有关详细信息和警告,请参阅此处:http://developer.apple.com/library/mac/#technotes/tn1103/_index.html