mirror of
https://github.com/systemd/systemd.git
synced 2024-12-18 22:53:40 +08:00
39d02a175f
So in theory UUID Variant 2 (i.e. microsoft GUIDs) are supposed to be displayed in native endian. That is of course a bad idea, and Linux userspace generally didn't implement that, i.e. uuidd and similar. Hence, let's not bother either, but let's document that we treat everything the same as Variant 1, even if it declares something else.
100 lines
4.2 KiB
XML
100 lines
4.2 KiB
XML
<?xml version='1.0'?> <!--*-nxml-*-->
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
|
|
|
<refentry id="sd_id128_to_string" xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
|
|
<refentryinfo>
|
|
<title>sd_id128_to_string</title>
|
|
<productname>systemd</productname>
|
|
</refentryinfo>
|
|
|
|
<refmeta>
|
|
<refentrytitle>sd_id128_to_string</refentrytitle>
|
|
<manvolnum>3</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>sd_id128_to_string</refname>
|
|
<refname>sd_id128_from_string</refname>
|
|
<refpurpose>Format or parse 128-bit IDs as strings</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<funcsynopsis>
|
|
<funcsynopsisinfo>#include <systemd/sd-id128.h></funcsynopsisinfo>
|
|
|
|
<funcprototype>
|
|
<funcdef>char *<function>sd_id128_to_string</function></funcdef>
|
|
<paramdef>sd_id128_t <parameter>id</parameter>, char <parameter>s</parameter>[33]</paramdef>
|
|
</funcprototype>
|
|
|
|
<funcprototype>
|
|
<funcdef>int <function>sd_id128_from_string</function></funcdef>
|
|
<paramdef>const char *<parameter>s</parameter>, sd_id128_t *<parameter>ret</parameter></paramdef>
|
|
</funcprototype>
|
|
|
|
</funcsynopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para><function>sd_id128_to_string()</function> formats a 128-bit
|
|
ID as a character string. It expects the ID and a string array
|
|
capable of storing 33 characters. The ID will be formatted as 32
|
|
lowercase hexadecimal digits and be terminated by a
|
|
<constant>NUL</constant> byte.</para>
|
|
|
|
<para><function>sd_id128_from_string()</function> implements the reverse operation: it takes a 33 character string
|
|
with 32 hexadecimal digits (either lowercase or uppercase, terminated by <constant>NUL</constant>) and parses them
|
|
back into a 128-bit ID returned in <parameter>ret</parameter>. Alternatively, this call can also parse a
|
|
37-character string with a 128-bit ID formatted as RFC UUID. If <parameter>ret</parameter> is passed as
|
|
<constant>NULL</constant> the function will validate the passed ID string, but not actually return it in parsed
|
|
form.</para>
|
|
|
|
<para>Note that when parsing 37 character UUIDs this is done strictly in Big Endian byte order,
|
|
i.e. according to <ulink url="https://tools.ietf.org/html/rfc4122">RFC4122</ulink> Variant 1
|
|
rules, even if the UUID encodes a different variant. This matches behaviour in various other Linux
|
|
userspace tools. It's probably wise to avoid UUIDs of other variant types.</para>
|
|
|
|
<para>For more information about the <literal>sd_id128_t</literal>
|
|
type see
|
|
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
|
Note that these calls operate the same way on all architectures,
|
|
i.e. the results do not depend on endianness.</para>
|
|
|
|
<para>When formatting a 128-bit ID into a string, it is often
|
|
easier to use a format string for
|
|
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
|
This is easily done using the
|
|
<constant>SD_ID128_FORMAT_STR</constant> and <function>SD_ID128_FORMAT_VAL()</function> macros. For
|
|
more information see
|
|
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Return Value</title>
|
|
|
|
<para><function>sd_id128_to_string()</function> always succeeds
|
|
and returns a pointer to the string array passed in.
|
|
<function>sd_id128_from_string()</function> returns 0 on success, in
|
|
which case <parameter>ret</parameter> is filled in, or a negative
|
|
errno-style error code.</para>
|
|
</refsect1>
|
|
|
|
<xi:include href="libsystemd-pkgconfig.xml" />
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
|
|
<para>
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
|
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|