sd_bus_message_read_array
systemd
sd_bus_message_read_array
3
sd_bus_message_read_array
Access an array of elements in a message
#include <systemd/sd-bus.h>
int sd_bus_message_read_array
sd_bus_message *m
char type
const void **ptr
size_t *size
Description
sd_bus_message_read_array() gives access to an element array in
message m. The "read pointer" in the message must be right before an
array of type type. As a special case, type may be
NUL, in which case any type is acceptable. A pointer to the array data is
returned in the parameter ptr and the size of array data (in bytes) is
returned in the parameter size. If size is 0, a
valid non-null pointer will be returned, but it may not be dereferenced. The data is aligned as
appropriate for the data type. The data is part of the message — it may not be modified and is
valid only as long as the message is referenced. After this function returns, the "read pointer"
points at the next element after the array.
Note that this function only supports arrays of trivial types, i.e. arrays of booleans, the various
integer types, as well as floating point numbers. In particular it may not be used for arrays of strings,
structures or similar.
Return Value
On success, sd_bus_message_read_array() returns 0 or
a positive integer. On failure, it returns a negative errno-style error
code.
Errors
Returned errors may indicate the following problems:
-EINVAL
Specified type is invalid or not a trivial type (see above), or the message
parameter or one of the output parameters are NULL.
-EOPNOTSUPP
The byte order in the message is different than native byte
order.
-EPERM
The message is not sealed.
-EBADMSG
The message cannot be parsed.
See Also
systemd1,
sd-bus3,
sd_bus_message_read3,
sd_bus_message_read_strv3