timer_create - Allocates a per-process timer
#include <signal.h> #include <time.h>
int timer_create ( clockid_t clock_id, struct
sigevent *evp, timer_t *timerid );
Realtime Library (librt.so, librt.a)
The type of clock on which the timer is based. The
CLOCK_REALTIME clock is supported. A pointer to a
sigevent structure, which defines the signal sent to the
process on timer expiration. A pointer to the timer ID
returned by the call to the timer_create function.
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 identifies
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
occurs 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.
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
disarms and deletes a timer.
Upon successful completion, a value of 0 (zero) 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 system lacks sufficient signal queuing
resources to honor the request. The calling process has
already created all of the timers it is allowed. The
specified clock ID is not defined.
Functions: clock_getres(3), clock_gettime(3), clock_settime(3), timer_delete(3), timer_gettime(3), timer_settime(3)
Guide to Realtime Programming
[ Back ]