sd_id128_randomize.xml revision 5aded369782f28255bc6b494ca905d7acaea7a56
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams<?xml version='1.0'?> <!--*-nxml-*-->
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams<!--
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams This file is part of systemd.
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams Copyright 2012 Lennart Poettering
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac systemd is free software; you can redistribute it and/or modify it
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac under the terms of the GNU Lesser General Public License as published by
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams the Free Software Foundation; either version 2.1 of the License, or
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams (at your option) any later version.
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac systemd is distributed in the hope that it will be useful, but
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams WITHOUT ANY WARRANTY; without even the implied warranty of
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac Lesser General Public License for more details.
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac You should have received a copy of the GNU Lesser General Public License
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams along with systemd; If not, see <http://www.gnu.org/licenses/>.
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams-->
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams<refentry id="sd_id128_randomize">
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refentryinfo>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <title>sd_id128_randomize</title>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <productname>systemd</productname>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <authorgroup>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <author>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <contrib>Developer</contrib>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <firstname>Lennart</firstname>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <surname>Poettering</surname>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <email>lennart@poettering.net</email>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </author>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </authorgroup>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </refentryinfo>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refmeta>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refentrytitle>sd_id128_randomize</refentrytitle>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <manvolnum>3</manvolnum>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </refmeta>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refnamediv>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refname>sd_id128_randomize</refname>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refpurpose>Generate 128-bit IDs</refpurpose>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </refnamediv>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refsynopsisdiv>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <funcsynopsis>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <funcprototype>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <funcdef>int <function>sd_id128_randomize</function></funcdef>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </funcprototype>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </funcsynopsis>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </refsynopsisdiv>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refsect1>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <title>Description</title>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <para><function>sd_id128_randomize()</function>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams generates a new randomized 128-bit ID and returns it
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams in <parameter>ret</parameter>. Every invocation
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams returns a new randomly generated ID. This uses the
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <filename>/dev/urandom</filename> kernel random number
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams generator.</para>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <para>Note that
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <function>sd_id128_randomize()</function> always returns
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams a UUID v4-compatible ID.</para>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <para>For more information about the
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <literal>sd_id128_t</literal> type, see
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <option>--new-id</option> option may be used as a
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams command-line front-end for
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <function>sd_id128_randomize()</function>.</para>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </refsect1>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refsect1>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <title>Return Value</title>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <para>The call returns 0 on success (in which
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams case <parameter>ret</parameter> is filled in), or a
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams negative errno-style error code.</para>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </refsect1>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refsect1>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <title>Notes</title>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <para>The <function>sd_id128_randomize()</function> interface
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams is available as a shared library, which can be compiled
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams and linked to with the
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <literal>libsystemd</literal> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams file.</para>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </refsect1>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <refsect1>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <title>See Also</title>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <para>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams <citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </para>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams </refsect1>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams</refentry>
2c379b9a5f7b4dc665dfdc4673c7b051e7005da1gary.williams