sd_machine_get_class(3) — Linux manual page


SD_MACHINE_GET_CLASS(3)   sd_machine_get_class   SD_MACHINE_GET_CLASS(3)

NAME         top

       sd_machine_get_class, sd_machine_get_ifindices - Determine the
       class and network interface indices of a locally running virtual
       machine or container

SYNOPSIS         top

       #include <systemd/sd-login.h>

       int sd_machine_get_class(const char* machine, char **class);

       int sd_machine_get_ifindices(const char* machine,
                                    int **ret_ifindices);

DESCRIPTION         top

       sd_machine_get_class() may be used to determine the class of a
       locally running virtual machine or container that is registered
       with systemd-machined.service(8). The string returned is either
       "vm" or "container". The returned string needs to be freed with
       the libc free(3) call after use.

       sd_machine_get_ifindices() may be used to determine the numeric
       indices of the network interfaces on the host that are pointing
       towards the specified locally running virtual machine or
       container. The vm or container must be registered with
       systemd-machined.service(8). The output parameter ret_ifindices
       may be passed as NULL when the output value is not needed. The
       returned array needs to be freed with the libc free(3) call after

RETURN VALUE         top

       On success, these functions return a non-negative integer.
       sd_machine_get_ifindices() returns the number of the relevant
       network interfaces. On failure, these calls return a negative
       errno-style error code.

       Returned errors may indicate the following problems:

           The specified machine does not exist or is currently not

           An input parameter was invalid (out of range, or NULL, where
           that is not accepted).

           Memory allocation failed.

NOTES         top

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

SEE ALSO         top

       systemd(1), sd-login(3), systemd-machined.service(8),

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 2021-08-27.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2021-08-27.)  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 249                                      SD_MACHINE_GET_CLASS(3)