sd_bus_message_read_basic
systemd
sd_bus_message_read_basic
3
sd_bus_message_read_basic
Read a basic type from a message
#include <systemd/sd-bus.h>
int sd_bus_message_read_basic
sd_bus_message *m
char type
void *p
Description
sd_bus_message_read_basic() reads a basic type from a
message and advances the read position in the message. The set of basic
types and their ascii codes passed in type are
described in the D-Bus
Specification.
If p is not NULL, it should contain
a pointer to an appropriate object. For example, if type
is 'y', the object passed in p
should have type uint8_t *
. If type is
's', the object passed in p should
have type const char **
. Note that, if the basic type is a pointer
(e.g., const char *
in the case of a string), the pointer is only
borrowed and the contents must be copied if they are to be used after the end
of the messages lifetime. Similarly, during the lifetime of such a pointer, the
message must not be modified. See the table below for a complete list of allowed
types.
If there is no object of the specified type at the current position in the
message, an error is returned.
Return Value
On success, sd_bus_message_read_basic() 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 string is invalid or the message parameter is
NULL.
-ENXIO
The message does not contain the specified type at current
position.
-EBADMSG
The message cannot be parsed.
See Also
systemd1,
sd-bus3,
sd_bus_message_append_basic3,
sd_bus_message_skip3,
sd_bus_message_read3