'\" te .\" Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. .TH uuid_clear 3UUID "16 Dec 2013" "SunOS 5.11" "Universally Unique Identifier Library Functions" .SH NAME uuid_clear, uuid_compare, uuid_copy, uuid_generate, uuid_generate_random, uuid_generate_time, uuid_is_null, uuid_parse, uuid_time, uuid_unparse \- universally unique identifier (UUID) operations .SH SYNOPSIS .LP .nf cc [ \fIflag \&.\|.\|.\fR ] \fIfile\fR\&.\|.\|. \fB-luuid\fR [ \fIlibrary \&.\|.\|.\fR ] #include \fBvoid\fR \fBuuid_clear\fR(\fBuuid_t\fR \fIuu\fR); .fi .LP .nf \fBint\fR \fBuuid_compare\fR(\fBuuid_t\fR \fIuu1\fR, \fBuuid_t\fR \fIuu2\fR); .fi .LP .nf \fBvoid\fR \fBuuid_copy\fR(\fBuuid_t\fR \fIdst\fR, \fBuuid_t\fR \fIsrc\fR); .fi .LP .nf \fBvoid\fR \fBuuid_generate\fR(\fBuuid_t\fR \fIout\fR); .fi .LP .nf \fBvoid\fR \fBuuid_generate_random\fR(\fBuuid_t\fR \fIout\fR); .fi .LP .nf \fBvoid\fR \fBuuid_generate_time\fR(\fBuuid_t\fR \fIout\fR); .fi .LP .nf \fBint\fR \fBuuid_is_null\fR(\fBuuid_t\fR \fIuu\fR); .fi .LP .nf \fBint\fR \fBuuid_parse\fR(\fBchar *\fR\fIin\fR, \fBuuid_t\fR \fIuu\fR); .fi .LP .nf \fBtime_t\fR \fBuuid_time\fR(\fBuuid_t\fR \fIuu\fR, \fBstruct timeval *\fR\fIret_tv\fR); .fi .LP .nf \fBvoid\fR \fBuuid_unparse\fR(\fBuuid_t\fR \fIuu\fR, \fBchar *\fR\fIout\fR); .fi .SH DESCRIPTION .sp .LP The \fBuuid_clear()\fR function sets the value of the specified universally unique identifier (UUID) variable \fIuu\fR to the \fINULL\fR value. .sp .LP The \fBuuid_compare()\fR function compares the two specified UUID variables \fIuu1\fR and \fIuu2\fR to each other. It returns an integer less than, equal to, or greater than zero if \fIuu1\fR is found to be, respectively, lexicographically less than, equal, or greater than \fIuu2\fR. .sp .LP The \fBuuid_copy()\fR function copies the UUID variable \fIsrc\fR to \fIdst\fR. .sp .LP The \fBuuid_generate()\fR function creates a new UUID that is generated based on high-quality randomness from \fB/dev/urandom\fR, if available. If \fB/dev/urandom\fR is not available, \fBuuid_generate()\fR calls \fBuuid_generate_time()\fR. Because the use of this algorithm provides information about when and where the UUID was generated, it could cause privacy problems for some applications. .sp .LP The \fBuuid_generate_random()\fR function produces a UUID with a random or pseudo-randomly generated time and Ethernet MAC address that corresponds to a DCE version 4 UUID. .sp .LP The \fBuuid_generate_time()\fR function uses the current time and the randomly generated 47-bit cryptographic MAC address that corresponds to a DCE version1 UUID. The randomly generated 47-bit cryptographic MAC address is used as the low 47 bits of the node ID, with the most significant bit of the first octet of the node ID set to 1.This bit is the multicast bit, which will never be set in IEEE 802 addresses obtained from network cards.The uniqueness of time based UUID's created by both root and normal users are guaranteed with or without zones. .sp .LP The \fBuuid_is_null()\fR function compares the value of the specified UUID variable \fIuu\fR to the \fINULL\fR value. If the value is equal to the \fINULL\fR UUID, 1 is returned. Otherwise 0 is returned. .sp .LP The \fBuuid_parse()\fR function converts the UUID string specified by \fIin\fR to the internal \fBuuid_t\fR format. The input UUID is a string of the form \fBcefa7a9c-1dd2-11b2-8350-880020adbeef\fR. In \fBprintf\fR(3C) format, the string is "\fB%08x-%04x-%04x-%04x-%012x\fR", 36 bytes plus the trailing null character. If the input string is parsed successfully, \fB0\fR is returned and the UUID is stored in the location pointed to by \fIuu\fR. Otherwise \fB-1\fR is returned. .sp .LP The \fBuuid_time()\fR function extracts the time at which the specified UUID \fIuu\fR was created. Since the UUID creation time is encoded within the UUID, this function can reasonably be expected to extract the creation time only for UUIDs created with the \fBuuid_generate_time()\fR function. The time at which the UUID was created, in seconds since January 1, 1970 GMT (the epoch), is returned (see \fBtime\fR(2)). The time at which the UUID was created, in seconds and microseconds since the epoch is also stored in the location pointed to by \fBret_tv\fR (see \fBgettimeofday\fR(3C)). .sp .LP The \fBuuid_unparse()\fR function converts the specified UUID \fIuu\fR from the internal binary format to a string of the length defined in the \fBuuid.h\fR macro, \fBUUID_PRINTABLE_STRING_LENGTH\fR, which includes the trailing null character. The resulting value is stored in the character string pointed to by \fIout\fR. .SH ATTRIBUTES .sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . ATTRIBUTE TYPEATTRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSafe .TE .SH SEE ALSO .sp .LP \fBinetd\fR(1M), \fBtime\fR(2), \fBgettimeofday\fR(3C), \fBlibuuid\fR(3LIB), \fBprintf\fR(3C), \fBattributes\fR(5)