TIMER_CREATE(2)

NAME
timer_create - create a per-process timer

LIBRARY
libc

SYNOPSIS
#include <time.h>
#include <signal.h>
int
timer_create(clockid_t clockid, struct sigevent * restrict evp, timer_t * restrict timerid);

DESCRIPTION
The timer_create() function creates a per-process timer using the clock specified in the clockid argument. If it succeeds, the timer_create() function fills in the timerid argument with an id associated with the timer created that can be used by other timer related calls. The clockid must be a valid clock id as defined in <time.h>. The timer is created in a disarmed state.

An optional (non-NULL) struct sigevent argument can be specified by the evp argument. If the evp argument is NULL, then evp->sigev_notify defaults to SIGEV_SIGNAL and evp->sigev_value is set to timerid. Refer to sigevent(3) for more details.

NOTES
Timers are not inherited after a fork(2) and are disarmed and deleted by an exec(3).

RETURN VALUES
If successful, the timer_create() function returns 0, and fills in the timerid argument with the id of the new timer that was created. Otherwise, it returns -1, and sets errno to indicate the error.

ERRORS
The timer_create() function will fail if:

[EAGAIN]
    The system is out of resources to satisfy this request, or the process has created all the timers it is allowed.

[EINVAL]
    The argument clockid is not a valid clock id.

SEE ALSO
clock_getres(2), clock_gettime(2), clock_settime(2), timer_delete(2), timer_getoverrun(2), timer_gettime(2), timer_settime(2), sigevent(3)

STANDARDS
p1003.1b-93, p1003.1i-95