I'm trying to getting UUID of a machine but this code get wrong result.
const char* getUUID() {
char ret[512];
io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/");
CFStringRef uuidCf = (CFStringRef) IORegistryEntryCreateCFProperty(ioRegistryRoot, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0);
IOObjectRelease(ioRegistryRoot);
CFStringGetCString(uuidCf, ret, sizeof(ret)*sizeof(char), kCFStringEncodingUTF8);
CFRelease(uuidCf);
NSLog(@"getUUID1: %s", ret);
return ret;
}
const char* getCPU() {
char ret[255];
strcpy(ret, "");
NSLog(@"getUUID2: %s", getUUID());
strcat(ret, getUUID());
NSLog(@"ret: %s", ret);
return ret;
}
Return this results:
getUUID1: 72B5E603-C915-52A7-K7C8-3E2N5214D18B - good
getUUID2: 72B5E60 - wrong
getUUID1: 72B5E603-C915-52A7-K7C8-3E2N5214D18B - good
ret: !è`? - absolutely wrong
Where am I wrong?