#include <uuid/uuid.h> void uuid_generate(uuid_t out); void uuid_generate_random(uuid_t out); void uuid_generate_time(uuid_t out);
uuid_generate_random 関数は、質の良い乱数発生機構 (例えば /dev/urandom) が利用できない場合でも、完全にランダムベースの (つまり時刻や MAC アドレスを使わない) UUID フォーマットを作りたい場合に用いる。 この場合は擬似乱数発生機構が代わりに用いられる。 擬似乱数発生機構を利用すると、このように生成された UUID の 一意性は劣化するかもしれないことに注意すること。
uuid_generata_time 関数は、代替アルゴリズムを使いたい場合に用いる。 これは現在時刻と (あれば) イーサネットの MAC アドレスを用いる。 このアルゴリズムはかつて UUID 生成方法のデフォルトであったが、 イーサネットの MAC アドレスを用いるので、いつどこで UUID が生成 されたかの情報がリークしてしまう。これはアプリケーションによっては プライバシーの問題を起こすことがあるので、 uuid_generate 関数は質の高い乱数発生機構が利用できない場合に限って このアルゴリズムを用いるようになった。
UUID は 16 バイト (128 ビット) 長で、およそ 3.4x10^38 この ユニークな値を与える (Carl Segan の Cosmos によれば、全宇宙にある素粒子の個数は 10^80 だそうである)。 新たに作られた UUID は、ローカルなシステムや外部のシステムによって 過去または未来に生成された/される UUID のいずれとも異なると 考えることができる。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]