Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


sd_bus_send(3) — Linux manual page

NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |NOTES |HISTORY |SEE ALSO |COLOPHON

SD_BUS_SEND(3)                 sd_bus_sendSD_BUS_SEND(3)

NAME        top

       sd_bus_send, sd_bus_send_to, sd_bus_message_send - Queue a D-Bus       message for transfer

SYNOPSIS        top

#include <systemd/sd-bus.h>int sd_bus_send(sd_bus *bus, sd_bus_message *m, uint64_t *cookie);int sd_bus_send_to(sd_bus *bus, sd_bus_message *m,const char *destination, uint64_t *cookie);int sd_bus_message_send(sd_bus_message *m);

DESCRIPTION        top

sd_bus_send()queues the bus message objectm for transfer. Ifbus       isNULL, the bus thatm is attached to is used.bus only needs to       be set when the message is sent to a different bus than the one it       is attached to, for example when forwarding messages. If the       output parametercookie is notNULL, it is set to the message       identifier. This value can later be used to match incoming replies       to their corresponding messages. Ifcookie is set toNULLand the       message is not sealed,sd_bus_send()assumes the messagem does       not expect a reply and adds the necessary headers to indicate       this.       Note that in most scenarios,sd_bus_send()should not be called       directly. Instead, use higher level functions such assd_bus_call_method(3) andsd_bus_reply_method_return(3) which callsd_bus_send()internally.sd_bus_send_to()is a shorthand for sending a message to a       specific destination. It's main use case is to simplify sending       unicast signal messages (signals that only have a single       receiver). It's behavior is similar to callingsd_bus_message_set_destination(3) followed by callingsd_bus_send().sd_bus_send()/sd_bus_send_to()will write the message directly to       the underlying transport (e.g. kernel socket buffer) if possible.       If the connection is not set up fully yet the message is queued       locally. If the transport buffers are congested any unwritten       message data is queued locally, too. If the connection has been       closed or is currently being closed the call fails.sd_bus_process(3) should be invoked to write out any queued       message data to the transport.sd_bus_message_send()is the same assd_bus_send()but without the       first and last argument.sd_bus_message_send(m)is equivalent tosd_bus_send(sd_bus_message_get_bus(m), m, NULL).

RETURN VALUE        top

       On success, these functions return a non-negative integer. On       failure, they return a negative errno-style error code.Errors       Returned errors may indicate the following problems:-EINVAL           The input parameterm isNULL.           Added in version 246.-EOPNOTSUPP           The bus connection does not support sending file descriptors.           Added in version 246.-ECHILD           The bus connection was allocated in a parent process and is           being reused in a child process afterfork().           Added in version 246.-ENOBUFS           The bus connection's write queue is full.           Added in version 246.-ENOTCONN           The input parameterbus isNULLor the bus is not connected.           Added in version 246.-ECONNRESET           The bus connection was closed while waiting for the response.           Added in version 246.-ENOMEM           Memory allocation failed.           Added in version 246.

NOTES        top

       Functions described here are available as a shared library, which       can be compiled against and linked to with thelibsystemd pkg-config(1) file.       The code described here usesgetenv(3), which is declared to be       not multi-thread-safe. This means that the code calling the       functions described here must not callsetenv(3) from a parallel       thread. It is recommended to only do calls tosetenv()from an       early phase of the program when no other threads have been       started.

HISTORY        top

sd_bus_send()andsd_bus_send_to()were added in version 246.

SEE ALSO        top

systemd(1),sd-bus(3),sd_bus_call_method(3),sd_bus_message_set_destination(3),sd_bus_reply_method_return(3),sd_bus_process(3)

COLOPHON        top

       This page is part of thesystemd (systemd system and service       manager) project.  Information about the project can be found at       ⟨http://www.freedesktop.org/wiki/Software/systemd⟩.  If you have a       bug report for this manual page, see       ⟨http://www.freedesktop.org/wiki/Software/systemd/#bugreports⟩.       This page was obtained from the project's upstream Git repository       ⟨https://github.com/systemd/systemd.git⟩ on 2025-08-11.  (At that       time, the date of the most recent commit that was found in the       repository was 2025-08-11.)  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 isnot part of the original manual page), send a mail to       man-pages@man7.orgsystemd 258~rc2SD_BUS_SEND(3)

Pages that refer to this page:sd-bus(3)sd_bus_default(3)sd_bus_emit_signal(3)sd_bus_enqueue_for_read(3)sd_bus_get_n_queued_read(3)sd_bus_message_seal(3)sd_bus_reply_method_error(3)sd_bus_reply_method_return(3)sd_bus_set_watch_bind(3)sd_bus_start(3)systemd.directives(7)systemd.index(7)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp