Uniká mi něco? Nemůžeš:
cat /proc/sys/kernel/random/uuid
Děkujeme za všechny vaše komentáře!
Prošel jsem každou z nich a zde je to, co nejlépe vyhovovalo mému požadavku:
Potřeboval jsem jen obyčejné UUID založené na čase, které byly vygenerovány z náhodných čísel jednou pro každého uživatele, který si aplikaci nainstaloval. UUID verze 4, jak je specifikováno v RFC 4122, to bylo přesně ono. Prošel jsem navrhovaným algoritmem a přišel s docela jednoduchým řešením, které by fungovalo v Linuxu i ve Windows (možná je příliš zjednodušené, ale uspokojuje potřebu!):
srand(time(NULL));
sprintf(strUuid, "%x%x-%x-%x-%x-%x%x%x",
rand(), rand(), // Generates a 64-bit Hex number
rand(), // 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