Manpages

名 前

uuid_generate, uuid_generate_random, uuid_generate_time − 他 と 重 な ら な い UUID 値 を 新 し く 作 成 す る

書 式

#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 関 数 は 新 し い UUID (universally unique identifier: 絶 対 に 他 と は 重 な ら な い 識 別 子 ) を 生 成 す る 。 UUID の 生 成 に は 、 /dev/urandom の よ う な 質 の 良 い 乱 数 発 生 機 構 が 利 用 で き る 場 合 は そ れ を 利 用 す る 。 で き な い 場 合 に は 、 uuid_generate は 別 の ア ル ゴ リ ズ ム を 用 い る 。 こ の 場 合 は 現 在 時 刻 、 ロ ー カ ル な イ ー サ ネ ッ ト の MAC ア ド レ ス が 取 得 で き れ ば そ の 値 、 お よ び 擬 似 乱 数 発 生 機 構 か ら 生 成 さ れ た 乱 数 が 用 い ら れ る 。

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 の い ず れ と も 異 な る と 考 え る こ と が で き る 。

返 り 値

新 た に 生 成 さ れ た UUID が 、 out の 指 す メ モ リ 位 置 に 返 さ れ る 。

準 拠

OSF DCE 1.1

著 者

Theodore Y. Ts’o

入 手 方 法

http://e2fsprogs.sourceforge.net/">http://e2fsprogs.sourceforge.net/

関 連 項 目

uuid(3), uuidgen(1), uuid_clear(3), uuid_compare(3), uuid_copy(3), uuid_is_null(3), uuid_parse(3), uuid_time(3), uuid_unparse(3)