| .\" Copyright 1999 Andreas Dilger (adilger@enel.ucalgary.ca) |
| .\" |
| .\" This man page was created for libuuid.so.1.1 from e2fsprogs-1.14. |
| .\" |
| .\" This file may be copied under the terms of the GNU Public License. |
| .\" |
| .\" Created Wed Mar 10 17:42:12 1999, Andreas Dilger |
| .TH UUID_GENERATE 3 "@E2FSPROGS_MONTH@ @E2FSPROGS_YEAR@" "E2fsprogs version @E2FSPROGS_VERSION@" |
| .SH NAME |
| uuid_generate, uuid_generate_random, uuid_generate_time \- create a new unique UUID value |
| .SH SYNOPSIS |
| .nf |
| .B #include <uuid/uuid.h> |
| .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 DESCRIPTION |
| The |
| .B uuid_generate |
| function creates a new universally unique identifier (UUID). The uuid will |
| be generated based on high-quality randomness from |
| .IR /dev/urandom , |
| if available. If it is not available, then |
| .B uuid_generate |
| will use an alternative algorithm which uses the current time, the |
| local ethernet MAC address (if available), and random data generated |
| using a pseudo-random generator. |
| .sp |
| The |
| .B uuid_generate_random |
| function forces the use of the all-random UUID format, even if |
| a high-quality random number generator (i.e., |
| .IR /dev/urandom ) |
| is not available, in which case a pseudo-random |
| generator will be subsituted. Note that the use of a pseudo-random |
| generator may compromise the uniqueness of UUID's |
| generated in this fashion. |
| .sp |
| The |
| .B uuid_generate_time |
| function forces the use of the alternative algorithm which uses the |
| current time and the local ethernet MAC address (if available). |
| This algorithm used to be the default one used to generate UUID, but |
| because of the use of the ethernet MAC address, it can leak |
| information about when and where the UUID was generated. This can cause |
| privacy problems in some applications, so the |
| .B uuid_generate |
| function only uses this algorithm if a high-quality source of |
| randomness is not available. |
| .sp |
| The UUID is 16 bytes (128 bits) long, which gives approximately 3.4x10^38 |
| unique values (there are approximately 10^80 elemntary particles in |
| the universe according to Carl Sagan's |
| .IR Cosmos ). |
| The new UUID can reasonably be considered unique among all UUIDs created |
| on the local system, and among UUIDs created on other systems in the past |
| and in the future. |
| .SH RETURN VALUE |
| The newly created UUID is returned in the memory location pointed to by |
| .IR out . |
| .SH "CONFORMING TO" |
| OSF DCE 1.1 |
| .SH AUTHOR |
| .B uuid_generate |
| was written by Theodore Y. Ts'o for the ext2 filesystem utilties. |
| .SH AVAILABILITY |
| .B uuid_generate |
| is part of libuuid from the e2fsprogs package and is available for anonymous |
| ftp from tsx\-11.mit.edu (and its mirrors) in /pub/linux/packages/ext2fs. |
| .SH "SEE ALSO" |
| .BR libuuid (3), |
| .BR uuid_clear (3), |
| .BR uuid_compare (3), |
| .BR uuid_copy (3), |
| .BR uuidgen (1), |
| .BR uuid_is_null (3), |
| .BR uuid_parse (3), |
| .BR uuid_time (3), |
| .BR uuid_unparse (3) |