Content-type: text/html
timer_create - Allocate a per-process timer
#include <signal.h> #include <time.h>
int timer_create (
clockid_t clock_id,
struct sigevent *evp,
timer_t *timerid );
The timer_create function allocates a per-process timer using the specified clock as the timing base. The timer_create function returns timer_id, which is used to identify the timer in timer requests. The timer ID is unique within the calling process until the timer is deleted. The timer is unarmed when first returned from a call to timer_create. To arm the timer, use the timer_settime function.
The evp argument, if non-NULL, points to a sigevent structure, which defines the asynchronous notification that will occur when the timer expires. If the sigev_notify member of evp is SIGEV_SIGNAL, the structure must contain the signal number and data value to send to the process when the timer expires. If the sigev_notify member is SIGEV_NONE, no notification will be sent.
SIGALRM is the default signal for CLOCK_REALTIME if the evp argument is NULL.
The maximum number of timers supported per process (TIMER_MAX) is defined in the <sys/rt_limits.h> header file, which is indirectly included through <time.h>.
Timers are not inherited across fork calls. An exec call will disarm and delete a timer.
Upon successful completion, a value of 0 is returned. The timer_create function also returns, in timerid, a pointer to the timer ID that has been created.
An unsuccessful call returns -1, and errno is set to indicate the error type.
The timer_create function fails under the following conditions:
The calling process has already created all of the timers it is allowed.
Functions: clock_getres(3), clock_gettime(3), clock_settime(3), timer_delete(3), timer_gettime(3), timer_settime(3) delim off