SD-DEVICE(3) sd-device SD-DEVICE(3)

.SH "NAME" sd-device - API for enumerating and introspecting local devices

.SH "SYNOPSIS"

```
#include <systemd/sd-device.h>
```

.HP 912u

**pkg-config --cflags --libs libsystemd**

.SH "DESCRIPTION"

.PP sd-device.h is part of [**libsystemd**(3)](/man/os/systemd/libsystemd.3) and provides an API to introspect and enumerate devices on the local system. It provides a programmatic interface to the database of devices and their properties managed by [**systemd-udevd.service**(8)](/man/os/systemd/systemd-udevd.service.8). This API is a replacement for [**libudev**(3)](/man/os/systemd/libudev.3) and libudev.h.

.PP See

[**sd\_device\_get\_syspath**(3)](/man/os/systemd/sd_device_get_syspath.3),

[**sd\_device\_ref**(3)](/man/os/systemd/sd_device_ref.3)

for more information about the functions available.

.SH "NOTES"

.PP Functions described here are available as a shared library, which can be compiled against and linked to with the **libsystemd** [**pkg-config**(1)](/man/os/systemd/pkg-config.1) file.

.PP The code described here uses [**getenv**(3)](/man/os/systemd/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)](/man/os/systemd/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 started.

.SH "SEE ALSO"

.PP [**systemd**(1)](/man/os/systemd/systemd.1), [**sd-event**(3)](/man/os/systemd/sd-event.3), [**udevadm**(8)](/man/os/systemd/udevadm.8)

systemd 262.2

---

Document: sd-device(3) from systemd 262.2-r1 (Chainguard OS)
Source: https://github.com/systemd/systemd
