blob: 0292ec8e054c83c00e314d51c46f560e65dcac70 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
'\" t
.TH "SD_ID128_RANDOMIZE" "3" "" "systemd 255" "sd_id128_randomize"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
sd_id128_randomize \- Generate 128\-bit IDs
.SH "SYNOPSIS"
.sp
.ft B
.nf
#include <systemd/sd\-id128\&.h>
.fi
.ft
.HP \w'int\ sd_id128_randomize('u
.BI "int sd_id128_randomize(sd_id128_t\ *" "ret" ");"
.SH "DESCRIPTION"
.PP
\fBsd_id128_randomize()\fR
generates a new randomized 128\-bit ID and returns it in
\fIret\fR\&. Every invocation returns a new randomly generated ID\&. This uses the
\fBgetrandom\fR(2)
kernel random number generator\&.
.PP
Note that
\fBsd_id128_randomize()\fR
always returns a UUID Variant 1 Version 4 compatible ID\&. It is hence guaranteed that this function will never return the ID consisting of all zero or all one bits (\fBSD_ID128_NULL\fR,
\fBSD_ID128_ALLF\fR)\&.
.PP
For more information about the
"sd_id128_t"
type, see
\fBsd-id128\fR(3)\&.
.PP
\fBsystemd-id128\fR(1)\*(Aqs
\fBnew\fR
command may be used as a command line front\-end for
\fBsd_id128_randomize()\fR\&.
.SH "RETURN VALUE"
.PP
The call returns 0 on success (in which case
\fIret\fR
is filled in), or a negative errno\-style error code\&.
.SH "NOTES"
.PP
Functions described here are available as a shared library, which can be compiled against and linked to with the
\fBlibsystemd\fR\ \&\fBpkg-config\fR(1)
file\&.
.PP
The code described here uses
\fBgetenv\fR(3), which is declared to be not multi\-thread\-safe\&. This means that the code calling the functions described here must not call
\fBsetenv\fR(3)
from a parallel thread\&. It is recommended to only do calls to
\fBsetenv()\fR
from an early phase of the program when no other threads have been started\&.
.SH "HISTORY"
.PP
\fBsd_id128_randomize()\fR
was added in version 187\&.
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBsd-id128\fR(3),
\fBmachine-id\fR(5),
\fBgetrandom\fR(2),
\fBrandom\fR(4),
\fBsd_id128_get_machine\fR(3)
|