2011-03-31 106 views
1

我需要在10.4上获得UUID值,但这里的命令似乎不受支持。如何在OS X 10.4上获得'IOPlatformUUID'?

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

我相信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

相关问题