SD\_ID128\_RANDOMIZE(3) sd\_id128\_randomize SD\_ID128\_RANDOMIZE(3)

.SH "NAME" sd\_id128\_randomize - Generate 128-bit IDs

.SH "SYNOPSIS"

```
#include <systemd/sd-id128.h>
```

.HP 552u **int sd\_id128\_randomize(sd\_id128\_t \*ret);**

.SH "DESCRIPTION"

.PP **sd\_id128\_randomize()** generates a new randomized 128-bit ID and returns it in *ret*. Every invocation returns a new randomly generated ID. This uses the [**getrandom**(2)](/man/os/systemd/getrandom.2) kernel random number generator.

.PP Note that **sd\_id128\_randomize()** 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 (**SD\_ID128\_NULL**, **SD\_ID128\_ALLF**).

.PP For more information about the sd\_id128\_t type, see [**sd-id128**(3)](/man/os/systemd/sd-id128.3).

.PP [**systemd-id128**(1)](/man/os/systemd/systemd-id128.1)'s **new** command may be used as a command line front-end for **sd\_id128\_randomize()**.

.SH "RETURN VALUE"

.PP The call returns 0 on success (in which case *ret* 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 **libsystemd** [**pkg-config**(1)](/man/os/systemd/pkg-config.1) file.

.PP The code described here uses [**getenv**(3)](/man/os/systemd/getenv.3), which is declared to be not multi-thread-safe. This means that the code calling the functions described here must not call [**setenv**(3)](/man/os/systemd/setenv.3) from a parallel thread. It is recommended to only do calls to **setenv()** from an early phase of the program when no other threads have been started.

.SH "HISTORY"

.PP **sd\_id128\_randomize()** was added in version 187.

.SH "SEE ALSO"

.PP [**systemd**(1)](/man/os/systemd/systemd.1), [**sd-id128**(3)](/man/os/systemd/sd-id128.3), [**machine-id**(5)](/man/os/systemd/machine-id.5), [**getrandom**(2)](/man/os/systemd/getrandom.2), [**random**(4)](/man/os/systemd/random.4), [**sd\_id128\_get\_machine**(3)](/man/os/systemd/sd_id128_get_machine.3)

systemd 262.2

---

Document: sd_id128_randomize(3) from systemd 262.2-r1 (Chainguard OS)
Source: https://github.com/systemd/systemd
