sd_event_add_signal, sd_event_source_get_signal — Add a signal event source to an event loop
#include <systemd/sd-bus.h>
| int sd_event_add_signal( | sd_event *event, | 
| sd_event_source **source, | |
| int signal, | |
| sd_event_signal_handler_t handler, | |
| void *userdata ); | 
| typedef int (*sd_event_signal_handler_t)( | sd_event_source *s, | 
| const struct signalfd_siginfo *si, | |
| void *userdata ); | 
| int sd_event_source_get_signal( | sd_event_source *source ); | 
sd_event_add_signal() adds a new signal
    event source to an event loop object. The event loop is specified
    in event, the event source is returned in
    the source parameter. The
    signal parameter specifies the signal to be handled
    (see
    signal(7)).
    The handler must reference a function to
    call when the signal is delivered or be NULL.
    The handler function will be passed the
    userdata pointer, which may be chosen
    freely by the caller. The handler also receives a pointer to a
    const struct signalfd_siginfo containing
    the information about the received signal. See
    signalfd(2)
    for further information.
Only a single handler may be installed for a specific
    signal. The signal will be unblocked, and must be
    blocked when the function is called. If the handler is not
    specified (handler is
    NULL), a default handler which causes the
    program to exit will be used.  By default, the handler is enabled
    permanently (SD_EVENT_ON), but this may be
    changed with
    sd_event_source_set_enabled(3).
    If the handler function returns a negative error code, it will be
    disabled after the invocation, even if
    SD_EVENT_ON mode is set.
    
sd_event_source_get_signal() retrieves
    the configured signal number of a signal event source created
    previously with sd_event_add_signal(). It
    takes the event source object as the source
    parameter.
On success, these functions return 0 or a positive integer. On failure, they return a negative errno-style error code.
sd_event_add_signal() and the other functions
    described here are available as a shared library, which can be
    compiled and linked to with the
    libsystemd pkg-config(1)
    file.