]>
Commit | Line | Data |
---|---|---|
224c7076 A |
1 | .\" Copyright 1999 Andreas Dilger (adilger@enel.ucalgary.ca) |
2 | .\" | |
3 | .\" %Begin-Header% | |
4 | .\" Redistribution and use in source and binary forms, with or without | |
5 | .\" modification, are permitted provided that the following conditions | |
6 | .\" are met: | |
7 | .\" 1. Redistributions of source code must retain the above copyright | |
8 | .\" notice, and the entire permission notice in its entirety, | |
9 | .\" including the disclaimer of warranties. | |
10 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
11 | .\" notice, this list of conditions and the following disclaimer in the | |
12 | .\" documentation and/or other materials provided with the distribution. | |
13 | .\" 3. The name of the author may not be used to endorse or promote | |
14 | .\" products derived from this software without specific prior | |
15 | .\" written permission. | |
16 | .\" | |
17 | .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
18 | .\" WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |
19 | .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF | |
20 | .\" WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE | |
21 | .\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
22 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT | |
23 | .\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
24 | .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
25 | .\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
26 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | |
27 | .\" USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH | |
28 | .\" DAMAGE. | |
29 | .\" %End-Header% | |
30 | .\" | |
31 | .\" Created Wed Mar 10 17:42:12 1999, Andreas Dilger | |
32 | .TH UUID_GENERATE 3 "April 2004" "1.36" | |
33 | .SH NAME | |
34 | uuid_generate, uuid_generate_random, uuid_generate_time \- create a new unique UUID value | |
35 | .SH SYNOPSIS | |
36 | .nf | |
37 | .B #include <uuid/uuid.h> | |
38 | .sp | |
39 | .BI "void uuid_generate(uuid_t " out ); | |
40 | .BI "void uuid_generate_random(uuid_t " out ); | |
41 | .BI "void uuid_generate_time(uuid_t " out ); | |
42 | .fi | |
43 | .SH DESCRIPTION | |
44 | The | |
45 | .B uuid_generate | |
46 | function creates a new universally unique identifier (UUID). The uuid will | |
47 | be generated based on high-quality randomness from | |
48 | .IR /dev/urandom , | |
49 | if available. If it is not available, then | |
50 | .B uuid_generate | |
51 | will use an alternative algorithm which uses the current time, the | |
52 | local ethernet MAC address (if available), and random data generated | |
53 | using a pseudo-random generator. | |
54 | .sp | |
55 | The | |
56 | .B uuid_generate_random | |
57 | function forces the use of the all-random UUID format, even if | |
58 | a high-quality random number generator (i.e., | |
59 | .IR /dev/urandom ) | |
60 | is not available, in which case a pseudo-random | |
61 | generator will be subsituted. Note that the use of a pseudo-random | |
62 | generator may compromise the uniqueness of UUID's | |
63 | generated in this fashion. | |
64 | .sp | |
65 | The | |
66 | .B uuid_generate_time | |
67 | function forces the use of the alternative algorithm which uses the | |
68 | current time and the local ethernet MAC address (if available). | |
69 | This algorithm used to be the default one used to generate UUID, but | |
70 | because of the use of the ethernet MAC address, it can leak | |
71 | information about when and where the UUID was generated. This can cause | |
72 | privacy problems in some applications, so the | |
73 | .B uuid_generate | |
74 | function only uses this algorithm if a high-quality source of | |
75 | randomness is not available. | |
76 | .sp | |
77 | The UUID is 16 bytes (128 bits) long, which gives approximately 3.4x10^38 | |
78 | unique values (there are approximately 10^80 elemntary particles in | |
79 | the universe according to Carl Sagan's | |
80 | .IR Cosmos ). | |
81 | The new UUID can reasonably be considered unique among all UUIDs created | |
82 | on the local system, and among UUIDs created on other systems in the past | |
83 | and in the future. | |
84 | .SH RETURN VALUE | |
85 | The newly created UUID is returned in the memory location pointed to by | |
86 | .IR out . | |
87 | .SH "CONFORMING TO" | |
88 | OSF DCE 1.1 | |
89 | .SH AUTHOR | |
90 | Theodore Y. Ts'o | |
91 | .SH AVAILABILITY | |
92 | .UR http://e2fsprogs.sourceforge.net/ | |
93 | http://e2fsprogs.sourceforge.net/ | |
94 | .UE | |
95 | .SH "SEE ALSO" | |
96 | .BR uuid (3), | |
97 | .BR uuidgen (1), | |
98 | .BR uuid_clear (3), | |
99 | .BR uuid_compare (3), | |
100 | .BR uuid_copy (3), | |
101 | .BR uuid_is_null (3), | |
102 | .BR uuid_parse (3), | |
103 | .BR uuid_unparse (3) |