Linux下面,有專門生成UUID的命令:
uuidgen [-r] [-t]。
即可以生成一個32位的字符串,這個是在命令行得到。在/usr/include/lib里面有個/uuid/uuid.h,其中定義了數據uuid,無符號的字符指針。同時有專門生成UUID的函數:uuid_generate(uuid_t uu),生成的UUID放在參數UU里面。此時得到的結果是一個8位數的16進制數。
在UUID生成函數的過程中經過了一些處理,才生成的是8位的16進制數,原因在于,在它生成的過程中,本來生成的是32位的長整形,結果經過uuid_parse進行轉換變成8位的16進制數。相反,我們有uuid_unparse函數,可以反向將16進制數轉換為32位的整形。
注意:在linux下要編譯生成uuid函數的時候,我們要進行庫的連接也就是最后要加上一個 -luuid。完全形式為:
gcc –o uuid uuid.c –luuid
同時在定義保存變換的32位長整形的字符串時,我們要合理分配空間,最不安全的辦法就是,申請一個指針去存放一個字符傳,切忌避免這樣做!
新聞熱點
疑難解答