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. Item type specifiers Specifier Constant Description Expected C Type y SD_BUS_TYPE_BYTE unsigned integer uint8_t * b SD_BUS_TYPE_BOOLEAN boolean int * n SD_BUS_TYPE_INT16 signed integer int16_t * q SD_BUS_TYPE_UINT16 unsigned integer uint16_t * i SD_BUS_TYPE_INT32 signed integer int32_t * u SD_BUS_TYPE_UINT32 unsigned integer uint32_t * x SD_BUS_TYPE_INT64 signed integer int64_t * t SD_BUS_TYPE_UINT64 unsigned integer uint64_t * d SD_BUS_TYPE_DOUBLE floating-point double * s SD_BUS_TYPE_STRING Unicode string const char ** o SD_BUS_TYPE_OBJECT_PATH object path const char ** g SD_BUS_TYPE_SIGNATURE signature const char ** h SD_BUS_TYPE_UNIX_FD UNIX file descriptor int *
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