3
我有一個調用「uuid_generate_random」的簡單C++函數。看起來生成的UUID不符合標準(UUID版本4)。有任何想法嗎?solaris上的uuid_generate_random(libuuid)
我使用的代碼是(uuid_generate_random & uuid_unparse功能在libuuid提供):
char uuidBuff[36];
uuid_t uuidGenerated;
uuid_generate_random(uuidGenerated);
uuid_unparse(uuidGenerated, uuidBuff);
我明白「uuid_generate_random」生成UUID版本4,但是,正在返回的字符串是像:
Run1) 2e9dc3c5-426a-eea0-8186-f6b65b5dc361
Run2) 112c6a78-51bc-cbbb-ae9c-92a33e1fd95f
Run3) 5abd3d6d-0259-ce5c-8428-a51bacc04c0f
Run4) 66a22485-7e5f-e5c2-a317-c1b295bf124f
它似乎是返回整個字符串的隨機字符。維基百科的定義應該採用以下形式:
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx對於x有任何十六進制數字,但對於y只有8,9,A或B中的一個。
任何輸入將不勝感激。
問候 丹尼爾
感謝您的快速回復!我正在考慮「粉碎」版本位......有點破解,但...... – Daniel 2010-09-21 10:59:09