TIMER_CREATE(2) | System Calls Manual | TIMER_CREATE(2)

# NAME

`timer_create` —
create a per-process timer

# LIBRARY

Standard C Library (libc, -lc)

# 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

IEEE Std 1003.1b-1993 (“POSIX.1b”), IEEE Std 1003.1i-1995 (“POSIX.1i”)

May 19, 2010 | NetBSD 9.1