September 13, 2003 TIMER_CREATE 2

### NAME

timer_create - create a per-process timer

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```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`) sigevent argument can be specified by the evp argument. If the evp argument is ```NULL`, then it defaults to ```sigev_notify` set to ```SIGEV_SIGVAL` and ```sigev_value` set to timerid. See siginfo(2) for accessing those values from a signal handler.

### 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)

### STANDARDS

IEEE Std 1003.1b-1993 (``POSIX.1'') , IEEE Std 1003.1i-1995 (``POSIX.1'')