.\" Copyright 1999 Andreas Dilger (adilger@enel.ucalgary.ca) .\" .\" %Begin-Header% .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, and the entire permission notice in its entirety, .\" including the disclaimer of warranties. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. The name of the author may not be used to endorse or promote .\" products derived from this software without specific prior .\" written permission. .\" .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED .\" WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF .\" WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE .\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT .\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF .\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE .\" USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" %End-Header% .\" .\" Created Wed Mar 10 17:42:12 1999, Andreas Dilger .\" .\" Japanese Version Copyright 1999 by NAKANO Takeo. All Rights Reserved. .\" Translated Sat 23 Oct 1999 by NAKANO Takeo .\" Updated Tue 16 Nov 1999 by NAKANO Takeo .\" .TH UUID_GENERATE 3 "December 2010" "E2fsprogs version 1.41.14" .SH 名前 uuid_generate, uuid_generate_random, uuid_generate_time \- 他と重ならない UUID 値を新しく作成する .SH 書式 .nf .B #include .sp .BI "void uuid_generate(uuid_t " out ); .BI "void uuid_generate_random(uuid_t " out ); .BI "void uuid_generate_time(uuid_t " out ); .fi .SH 説明 .B uuid_generate 関数は新しい UUID (universally unique identifier: 絶対に他とは重ならない識別子) を生成する。 UUID の生成には、 .I /dev/urandom のような質の良い乱数発生機構が利用できる場合はそれを利用する。 できない場合には、 .B uuid_generate は別のアルゴリズムを用いる。この場合は現在時刻、 ローカルなイーサネットの MAC アドレスが取得できればその値、 および擬似乱数発生機構から生成された乱数が用いられる。 .sp .B uuid_generate_random 関数は、質の良い乱数発生機構 (例えば .IR /dev/urandom ) が利用できない場合でも、完全にランダムベースの (つまり時刻や MAC アドレスを使わない) UUID フォーマットを作りたい場合に用いる。 この場合は擬似乱数発生機構が代わりに用いられる。 擬似乱数発生機構を利用すると、このように生成された UUID の 一意性は劣化するかもしれないことに注意すること。 .sp .B uuid_generata_time 関数は、代替アルゴリズムを使いたい場合に用いる。 これは現在時刻と (あれば) イーサネットの MAC アドレスを用いる。 このアルゴリズムはかつて UUID 生成方法のデフォルトであったが、 イーサネットの MAC アドレスを用いるので、いつどこで UUID が生成 されたかの情報がリークしてしまう。これはアプリケーションによっては プライバシーの問題を起こすことがあるので、 .B uuid_generate 関数は質の高い乱数発生機構が利用できない場合に限って このアルゴリズムを用いるようになった。 .sp UUID は 16 バイト (128 ビット) 長で、およそ 3.4x10^38 この ユニークな値を与える (Carl Segan の .I Cosmos によれば、全宇宙にある素粒子の個数は 10^80 だそうである)。 新たに作られた UUID は、ローカルなシステムや外部のシステムによって 過去または未来に生成された/される UUID のいずれとも異なると 考えることができる。 .SH 返り値 新たに生成された UUID が、 .I out の指すメモリ位置に返される。 .SH 準拠 OSF DCE 1.1 .SH 著者 Theodore Y. Ts'o .SH 入手方法 .UR http://e2fsprogs.sourceforge.net/ http://e2fsprogs.sourceforge.net/ .UE .SH 関連項目 .BR uuid (3), .BR uuidgen (1), .BR uuid_clear (3), .BR uuid_compare (3), .BR uuid_copy (3), .BR uuid_is_null (3), .BR uuid_parse (3), .BR uuid_time (3), .BR uuid_unparse (3)