SD_BUS_MESSAGE_READ_BASIC(3)

  .SH "NAME" sd_bus_message_read_basic - Read a basic type from a message
  .SH "SYNOPSIS"

#include <systemd/sd-bus.h>

      .HP u int sd_bus_message_read_basic(sd_bus_message *m, char type, void *p);

  .SH "DESCRIPTION"

    .PP 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[1].
    .PP 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.
    .sp
Table 1. 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 *

    .PP If there is no object of the specified type at the current position in the message, an error is returned.

  .SH "RETURN VALUE"

    .PP On success, sd_bus_message_read_basic() returns 0 or a positive integer. On failure, it returns a negative errno-style error code.

  .SH "ERRORS"

    .PP Returned errors may indicate the following problems:

      .PP -EINVAL

            Specified type string is invalid or the message parameter is NULL.
          .RE
          .PP -ENXIO

                The message does not contain the specified type at current position.
              .RE
              .PP -EBADMSG

                    The message cannot be parsed.
                  .RE

              .SH "SEE ALSO"

                .PP systemd(1), sd-bus(3), sd_bus_message_append_basic(3), sd_bus_message_skip(3), sd_bus_message_read(3)

NOTES

1.  D-Bus Specification
    https://dbus.freedesktop.org/doc/dbus-specification.html