sd_bus_message_append_array
systemd
A monkey with a typewriter
Zbigniew
Jędrzejewski-Szmek
zbyszek@in.waw.pl
sd_bus_message_append_array
3
sd_bus_message_append_array
sd_bus_message_append_array_memfd
sd_bus_message_append_array_iovec
sd_bus_message_append_array_space
Attach an array of items to a message
#include <systemd/sd-bus.h>
int sd_bus_message_append_array
sd_bus_message *m
char type
char void *ptr
size_t size
int sd_bus_message_append_array_memfd
sd_bus_message *m
char type
int memfd
int sd_bus_message_append_array_iovec
sd_bus_message *m
char type
const struct iovec *iov
unsigned n
int sd_bus_message_append_array_space
char type
size_t size
char void **ptr
Description
The sd_bus_message_append_array functionc
appends items to message m as the single
array. A container will be opened, items appended, and the
container closed. Parameter type determines
how pointer p is interpreted.
type must be one of the "trivial" types
y, n, q,
i, u, x,
t, d (but not
b), as defined by the
Basic Types
section of the D-Bus specification, and listed in
sd_bus_message_append_basic3.
Pointer p must point to an array of size
size bytes containing items of the
respective type. Size size must be a
multiple of the size of the type type. As a
special case, p may be
NULL, if size is 0.
The memory pointed at by p is copied
into the memory area containing the message and may be changed
after this call.
The
sd_bus_message_append_array_memfd function appends
items to message m, similarly to
sd_bus_message_append_array. Contents of the
memory file descriptor memfd are used as
the contents of the array. Their size must be a multiple of the
size of the type type.
The descriptor specified with memfd
will be sealed and cannot be modified after this call.
The
sd_bus_message_append_array_iovec function appends
items to message m, similarly to
sd_bus_message_append_array. Contents of the
iovec iov are used as the contents of the
array. The total size of iov payload (the
sum of iov_len fields) must be a multiple
of the size of the type type.
The iov argument must point to
n struct iovec
structures. Each structure may have the
iov_base field set, in which case the
memory pointed to will be copied into the message, or unset, in
which case a block of zeros of length
iov_len bytes will be inserted. The
memory pointed at by iov may be changed
after this call.
The
sd_bus_message_append_array_space function appends
space for an array of items to message m.
It behaves the same as
sd_bus_message_append_array, but instead
of copying items to the message, it returns a pointer to the
destination area to the caller in pointer p.
Return Value
On success, these calls return 0 or a positive integer. On
failure, they returns a negative errno-style error code.
Notes
sd_bus_append_array() and other
functions described here are available as a shared library, which
can be compiled and linked to with the
libsystemd pkg-config1
file.
See Also
systemd1,
sd-bus3,
sd_bus_message_append3,
sd_bus_message_append_basic3,
The D-Bus specification