]> git.ipfire.org Git - thirdparty/systemd.git/blob - man/sd_bus_message_read_array.xml
service: add new RootImageOptions feature
[thirdparty/systemd.git] / man / sd_bus_message_read_array.xml
1 <?xml version='1.0'?>
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4 <!-- SPDX-License-Identifier: LGPL-2.1+ -->
5
6 <refentry id="sd_bus_message_read_array">
7
8 <refentryinfo>
9 <title>sd_bus_message_read_array</title>
10 <productname>systemd</productname>
11 </refentryinfo>
12
13 <refmeta>
14 <refentrytitle>sd_bus_message_read_array</refentrytitle>
15 <manvolnum>3</manvolnum>
16 </refmeta>
17
18 <refnamediv>
19 <refname>sd_bus_message_read_array</refname>
20
21 <refpurpose>Access an array of elements in a message</refpurpose>
22 </refnamediv>
23
24 <refsynopsisdiv>
25 <funcsynopsis>
26 <funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
27
28 <funcprototype>
29 <funcdef>int <function>sd_bus_message_read_array</function></funcdef>
30 <paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
31 <paramdef>char <parameter>type</parameter></paramdef>
32 <paramdef>const void **<parameter>ptr</parameter></paramdef>
33 <paramdef>size_t *<parameter>size</parameter></paramdef>
34 </funcprototype>
35 </funcsynopsis>
36 </refsynopsisdiv>
37
38 <refsect1>
39 <title>Description</title>
40
41 <para><function>sd_bus_message_read_array()</function> gives access to an element array in
42 message <parameter>m</parameter>. The "read pointer" in the message must be right before an
43 array of type <parameter>type</parameter>. As a special case, <parameter>type</parameter> may be
44 <constant>NUL</constant>, in which case any type is acceptable. A pointer to the array data is
45 returned in the parameter <parameter>ptr</parameter> and the size of array data (in bytes) is
46 returned in the parameter <parameter>size</parameter>. If <parameter>size</parameter> is 0, a
47 valid non-null pointer will be returned, but it may not be dereferenced. The data is aligned as
48 appropriate for the data type. The data is part of the message — it may not be modified and is
49 valid only as long as the message is referenced. After this function returns, the "read pointer"
50 points at the next element after the array.</para>
51
52 <para>Note that this function only supports arrays of trivial types, i.e. arrays of booleans, the various
53 integer types, as well as floating point numbers. In particular it may not be used for arrays of strings,
54 structures or similar.</para>
55 </refsect1>
56
57 <refsect1>
58 <title>Return Value</title>
59
60 <para>
61 On success, <function>sd_bus_message_read_array()</function> returns 0 or
62 a positive integer. On failure, it returns a negative errno-style error
63 code.
64 </para>
65
66 <refsect2>
67 <title>Errors</title>
68
69 <para>Returned errors may indicate the following problems:</para>
70
71 <variablelist>
72 <varlistentry>
73 <term><constant>-EINVAL</constant></term>
74
75 <listitem><para>Specified type is invalid or not a trivial type (see above), or the message
76 parameter or one of the output parameters are <constant>NULL</constant>.</para></listitem>
77 </varlistentry>
78
79 <varlistentry>
80 <term><constant>-EOPNOTSUPP</constant></term>
81
82 <listitem><para>The byte order in the message is different than native byte
83 order.</para></listitem>
84 </varlistentry>
85
86 <varlistentry>
87 <term><constant>-EPERM</constant></term>
88
89 <listitem><para>The message is not sealed.</para></listitem>
90 </varlistentry>
91
92 <varlistentry>
93 <term><constant>-EBADMSG</constant></term>
94
95 <listitem><para>The message cannot be parsed.</para></listitem>
96 </varlistentry>
97
98 </variablelist>
99 </refsect2>
100 </refsect1>
101
102 <refsect1>
103 <title>See Also</title>
104
105 <para>
106 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
107 <citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
108 <citerefentry><refentrytitle>sd_bus_message_read</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
109 <citerefentry><refentrytitle>sd_bus_message_read_strv</refentrytitle><manvolnum>3</manvolnum></citerefentry>
110 </para>
111 </refsect1>
112
113 </refentry>