- bind or unbind subscriber handle
cc [flag…] file … -lsysevent [library …] #include <libsysevent.h> sysevent_handle_t *sysevent_bind_handle(void (*event_handler) (sysevent_t *ev));
void sysevent_unbind_handle(sysevent_handle_t *sysevent_hdl);
pointer to sysevent buffer handle
pointer to an event handling function
pointer to a sysevent subscriber handle
The sysevent_bind_handle() function allocates memory associated with a subscription handle and binds it to the caller's event_handler. The event_handler is invoked during subsequent system event notifications once a subscription has been made with sysevent_subscribe_event(3SYSEVENT).
The system event is represented by the argument ev and is passed as an argument to the invoked event delivery function, event_handler.
Additional threads are created to service communication between syseventd(1M) and the calling process and to run the event handler routine, event_handler.
The sysevent_unbind_handle() function deallocates memory and other resources associated with a subscription handle and deactivates all system event notifications for the calling process. All event notifications are guaranteed to stop upon return from sysevent_unbind_handle().
The sysevent_bind_handle() function returns a valid sysevent subscriber handle if the handle is successfully allocated. Otherwise, NULL is returned and errno is set to indicate the error.
The sysevent_unbind_handle() function returns no value.
The sysevent_bind_handle() function will fail if:
The calling process has an ID other than the privileged user.
There are no resources available.
The pointer to the function event_handler is NULL.
The process has too many open descriptors.
There are insufficient resources to allocate the handle.
See attributes(5) for descriptions of the following attributes:
Event notifications are revoked by syseventd when the bound process dies. Event notification is suspended if a signal is caught and handled by the event_handler thread. Event notification is also suspended when the calling process attempts to use fork(2) or fork1(2). Event notifications might be lost during suspension periods.