sd_bus_message_append_string_memfd(3) — Linux manual page


SD_BUS..._MEMFD(3) sd_bus_message_append_string_memfd SD_BUS..._MEMFD(3)

NAME         top

       sd_bus_message_append_string_space - Attach a string to a message

SYNOPSIS         top

       #include <systemd/sd-bus.h>

       int sd_bus_message_append_string_memfd(sd_bus_message *m,
                                              int memfd);

       int sd_bus_message_append_string_iovec(sd_bus_message *m,
                                              const struct iovec *iov,
                                              unsigned n);

       int sd_bus_message_append_string_space(sd_bus_message *m,
                                              size_t size, char **s);

DESCRIPTION         top

       The functions sd_bus_message_append_string_memfd() and
       sd_bus_message_append_string_iovec() can be used to append a
       single string (item of type "s") to message m.

       In case of sd_bus_message_append_string_memfd(), the contents of
       memfd are the string. They must satisfy the same constraints as
       described for the "s" type in sd_bus_message_append_basic(3).

       In case of sd_bus_message_append_string_iovec(), the payload of
       iov is the string. It must satisfy the same constraints as
       described for the "s" type in sd_bus_message_append_basic(3).

       The iov argument must point to n struct iovec structures. Each
       structure may have the iov_base field set, in which case the
       memory pointed to will be copied into the message, or unset, in
       which case a block of spaces (ASCII 32) of length iov_len will be
       inserted. The memory pointed at by iov may be changed after this

       The sd_bus_message_append_string_space() function appends space
       for a string to message m. It behaves similar to
       sd_bus_message_append_basic() with type "s", but instead of
       copying a string into the message, it returns a pointer to the
       destination area to the caller in pointer p. Space for the string
       of length size plus the terminating NUL is allocated.

RETURN VALUE         top

       On success, those calls return 0 or a positive integer. On
       failure, they return a negative errno-style error code.

       Returned errors may indicate the following problems:

           Specified parameter is invalid.

           Message has been sealed.

           Message is in invalid state.

           Message cannot be appended to.

           Memory allocation failed.

NOTES         top

       Functions described here are available as a shared library, which
       can be compiled against and linked to with the
       libsystemd pkg-config(1) file.

       The code described here uses getenv(3), which is declared to be
       not multi-thread-safe. This means that the code calling the
       functions described here must not call setenv(3) from a parallel
       thread. It is recommended to only do calls to setenv() from an
       early phase of the program when no other threads have been

SEE ALSO         top

       systemd(1), sd-bus(3), sd_bus_message_append_basic(3), The D-Bus

NOTES         top

        1. The D-Bus specification

COLOPHON         top

       This page is part of the systemd (systemd system and service
       manager) project.  Information about the project can be found at
       ⟨⟩.  If you have
       a bug report for this manual page, see
       This page was obtained from the project's upstream Git repository
       ⟨⟩ on 2023-12-22.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2023-12-22.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

systemd 255                                           SD_BUS..._MEMFD(3)

Pages that refer to this page: sd-bus(3)systemd.directives(7)systemd.index(7)