- sprintf(str, "%x%x-%x-%x-%x-%x%x%x",
- rand(), rand(), // Generates a 64-bit Hex number
- (uint32_t) getpid(), // Generates a 32-bit Hex number
- ((rand() & 0x0fff) | 0x4000), // Generates a 32-bit Hex number of the form 4xxx (4 indicates the UUID version)
- rand() % 0x3fff + 0x8000, // Generates a 32-bit Hex number in the range [0x8000, 0xbfff]
- rand(), rand(), rand()); // Generates a 96-bit Hex number
+ sprintf(str, "%x%x-%x-%x-%x-%x%x%x",
+ arc4random(), arc4random(), // Generates a 64-bit Hex number
+ (uint32_t) getpid(), // Generates a 32-bit Hex number
+ ((arc4random() & 0x0fff) | 0x4000), // Generates a 32-bit Hex number of the form 4xxx (4 indicates the UUID version)
+ arc4random() % 0x3fff + 0x8000, // Generates a 32-bit Hex number in the range [0x8000, 0xbfff]
+ arc4random(), arc4random(), arc4random()); // Generates a 96-bit Hex number