sd_event_source_set_description

Index · Directives systemd 234

## Name

sd_event_source_set_description, sd_event_source_get_description — Set or retrieve descriptive names of event sources

## Synopsis

    #include <systemd/sd-event.h>

`int sd_event_source_set_description(` | sd_event_source *source,
| const char *description`)`;

`int sd_event_source_get_description(` | sd_event_source *source,
| const char **description`)`;

## Description

`sd_event_source_set_description()` may be used to set an arbitrary descriptive name for the event source object specified as `source`. This name will be used in debugging messages generated by sd-event(3) for this event source, and may be queried using `sd_event_source_get_description()` for debugging purposes. The `description` parameter shall point to a `NUL`-terminated string or be `NULL`. In the latter case, the descriptive name will be unset. The string is copied internally, hence the `description` argument is not referenced after the function returns.

`sd_event_source_get_description()` may be used to query the current descriptive name assigned to the event source object `source`. It returns a pointer to the current name in `description`, stored in memory internal to the event source. The memory is invalidated when the event source is destroyed or the descriptive name is changed.

Event source objects generally have no description set when they are created, except for UNIX signal event sources created with sd_event_add_signal(3), whose descriptive name is initialized to the signal's C constant name (e.g. "`SIGINT`" or "`SIGTERM`").

## Return Value

On success, `sd_event_source_set_description()` and `sd_event_source_get_description()` return a non-negative integer. On failure, they return a negative errno-style error code.

## Errors

Returned errors may indicate the following problems:

`-EINVAL`

  `source` is not a valid pointer to an sd_event_source object or the `description` argument for `sd_event_source_get_description()` is `NULL`.

`-ENOMEM`

  Not enough memory to copy the name.

`-ECHILD`

  The event loop has been created in a different process.

`-ENXIO`

  No name was set for the event source.

## Notes

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

## See Also

sd-event(3), sd_event_add_io(3), sd_event_add_time(3), sd_event_add_child(3), sd_event_add_signal(3), sd_event_add_defer(3), sd_event_source_set_userdata(3)