SD_BUS_NEW - Online Linux Manual PageSection : 3
Updated :
Source : systemd 250
Note : sd_bus_new

NAMEsd_bus_new, sd_bus_ref, sd_bus_unref, sd_bus_unrefp, sd_bus_close_unref, sd_bus_close_unrefp, sd_bus_flush_close_unref, sd_bus_flush_close_unrefp − Create a new bus object and create or destroy references to it

SYNOPSIS#include <systemd/sd−bus​.h>int sd_bus_new(sd_bus **bus); sd_bus *sd_bus_ref(sd_bus *bus); sd_bus *sd_bus_unref(sd_bus *bus); sd_bus *sd_bus_close_unref(sd_bus *bus); sd_bus *sd_bus_flush_close_unref(sd_bus *bus); void sd_bus_unrefp(sd_bus **busp); void sd_bus_close_unrefp(sd_bus **busp); void sd_bus_flush_close_unrefp(sd_bus **busp);

DESCRIPTIONsd_bus_new() creates a new bus object​. This object is reference−counted, and will be destroyed when all references are gone​. Initially, the caller of this function owns the sole reference and the bus object will not be connected to any bus​. To connect it to a bus, make sure to set an address with sd_bus_set_address(3) or a related call, and then start the connection with sd_bus_start(3)​. In most cases, it is better to use sd_bus_default_user(3), sd_bus_default_system(3) or related calls instead of the more low−level sd_bus_new() and sd_bus_start()​. The higher−level functions not only allocate a bus object but also start the connection to a well−known bus in a single function call​. sd_bus_ref() increases the reference counter of bus by one​. sd_bus_unref() decreases the reference counter of bus by one​. Once the reference count has dropped to zero, bus is destroyed and cannot be used anymore, so further calls to sd_bus_ref() or sd_bus_unref() are illegal​. sd_bus_unrefp() is similar to sd_bus_unref() but takes a pointer to a pointer to an sd_bus object​. This call is useful in conjunction with GCC's and LLVM's Clean−up Variable Attribute[1]​. Note that this function is defined as inline function​. Use a declaration like the following, in order to allocate a bus object that is freed automatically as the code block is left: { __attribute__((cleanup(sd_bus_unrefp))) sd_bus *bus = NULL; int r; ​... r = sd_bus_default(&bus); if (r < 0) fprintf(stderr, "Failed to allocate bus: %s\n", strerror(−r)); ​... }sd_bus_ref() and sd_bus_unref() execute no operation if the passed in bus object address is NULL​. sd_bus_unrefp() will first dereference its argument, which must not be NULL, and will execute no operation if that is NULL​. sd_bus_close_unref() is similar to sd_bus_unref(), but first executes sd_bus_close(3), ensuring that the connection is terminated before the reference to the connection is dropped and possibly the object freed​. sd_bus_flush_close_unref() is similar to sd_bus_unref(), but first executes sd_bus_flush(3) as well as sd_bus_close(3), ensuring that any pending messages are synchronously flushed out before the reference to the connection is dropped and possibly the object freed​. This call is particularly useful immediately before exiting from a program as it ensures that any pending outgoing messages are written out, and unprocessed but queued incoming messages released before the connection is terminated and released​. sd_bus_close_unrefp() is similar to sd_bus_close_unref(), but may be used in GCC's and LLVM's Clean−up Variable Attribute, see above​. Similarly, sd_bus_flush_close_unrefp() is similar to sd_bus_flush_close_unref()​.

RETURN VALUEOn success, sd_bus_new() returns 0 or a positive integer​. On failure, it returns a negative errno−style error code​. sd_bus_ref() always returns the argument​. sd_bus_unref() and sd_bus_flush_close_unref() always return NULL​.

ErrorsReturned errors may indicate the following problems: −ENOMEM Memory allocation failed​.

NOTESThese APIs are implemented as a shared library, which can be compiled and linked to with the libsystemd ​pkg-config(1) file​.

SEE ALSOsystemd(1), sd-bus(3), sd_bus_default_user(3), sd_bus_default_system(3), sd_bus_open_user(3), sd_bus_open_system(3), sd_bus_close(3)

NOTES 1. Clean-up Variable Attribute ­https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html
0
Johanes Gumabo
Data Size   :   17,838 byte
man-sd_bus_close_unref.3Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   2 / 183,842
Visitor ID   :     :  
Visitor IP   :   18.217.14.208   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.