UUID_CLEAR(3UUID) Universally Unique Identifier Library Functions

NAME


uuid_clear, uuid_compare, uuid_copy, uuid_generate, uuid_generate_random,
uuid_generate_time, uuid_is_null, uuid_parse, uuid_time, uuid_unparse,
uuid_unparse_lower, uuid_unparse_upper - universally unique identifier
(UUID) operations

LIBRARY


UUID Library (libuuid, -luuid)

SYNOPSIS


#include <uuid/uuid.h>

void
uuid_clear(uuid_t uu);

int
uuid_compare(uuid_t uu1, uuid_t uu2);

void
uuid_copy(uuid_t dst, uuid_t src);

void
uuid_generate(uuid_t out);

void
uuid_generate_random(uuid_t out);

void
uuid_generate_time(uuid_t out);

int
uuid_is_null(uuid_t uu);

int
uuid_parse(char *int, uuid_t uu);

time_t
uuid_time(uuid_t uu, struct timeval *ret_tv);

void
uuid_unparse(uuid_t uu, char *out);

void
uuid_unparse_lower(uuid_t uu, char *out);

void
uuid_unparse_upper(uuid_t uu, char *out);

DESCRIPTION


The uuid_clear() function sets the value of the specified universally
unique identifier (UUID) variable uu to the NULL value.

The uuid_compare() function compares the two specified UUID variables uu1
and uu2 to each other. It returns an integer less than, equal to, or
greater than zero if uu1 is found to be, respectively, lexicographically
less than, equal, or greater than uu2.

The uuid_copy() function copies the UUID variable src to dst.

The uuid_generate() and uuid_generate_random() functions create a new UUID
that is generated based on high-quality randomness utilizing the
arc4random(3C) function. These correspond to a DCE version 4 UUID. On
some implementations it is possible that the uuid_generate() function will
fall back to generating a version 1 UUID. While in our current
implementation this is not possible, applications should not assume a
guaranteed format when calling the uuid_generate() function.

The uuid_generate_time() function uses the current time and the local
Ethernet MAC address (if available, otherwise a MAC address is fabricated)
that corresponds to a DCE version 1 UUID. If the UUID is not guaranteed to
be unique, the multicast bit is set (the high-order bit of octet number
10).

The uuid_is_null() function compares the value of the specified UUID
variable uu to the NULL value. If the value is equal to the NULL UUID, 1
is returned. Otherwise 0 is returned.

The uuid_parse() function converts the UUID string specified by in to the
internal uuid_t format. The input UUID is a string of the form
cefa7a9c-1dd2-11b2-8350-880020adbeef. In printf(3C) format, the string is
"%08x-%04x-%04x-%04x-%012x", 36 bytes plus the trailing null character. If
the input string is parsed successfully, 0 is returned and the UUID is
stored in the location pointed to by uu. Otherwise -1 is returned.

The uuid_time() function extracts the time at which the specified UUID uu
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 uuid_generate_time() function. The time at which
the UUID was created, in seconds since January 1, 1970 GMT (the epoch), is
returned (see time(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 ret_tv (see gettimeofday(3C)).

The uuid_unparse() and uuid_unparse_lower() functions convert the specified
UUID uu from the internal binary format to a lower case string of the
length defined in the <uuid/uuid.h> macro, UUID_PRINTABLE_STRING_LENGTH,
which includes the trailing null character. The resulting value is stored
in the character string pointed to by out.

The uuid_unparse_upper function converts the specified UUID uu from the
internal binary format to a upper case string of the length defined in the
<uuid/uuid.h> macro, UUID_PRINTABLE_STRING_LENGTH, which includes the
trailing null character. The resulting value is stored in the character
string pointed to by out.

INTERFACE STABILITY


Evolving

MT-LEVEL
Safe

SEE ALSO


time(2), arc4random(3C), gettimeofday(3C), printf(3C), libuuid(3LIB),
attributes(7)

illumos November 30, 2021 illumos