SD_BUS_MESSAGE_READ_ARRAY(3)

NAME
sd_bus_message_read_array - Access an array of elements in a message

SYNOPSIS

#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.

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 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

systemd(1), sd-bus(3), sd_bus_message_read(3)