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
EvolvingMT-LEVEL SafeSEE ALSO
time(2),
arc4random(3C),
gettimeofday(3C),
printf(3C),
libuuid(3LIB),
attributes(7)illumos November 30, 2021 illumos