Skip to content

timerfd_settime()

Purpose

Arms, disarms, or reconfigures a timerfd.

#include <sys/timerfd.h>

Prototype

int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *old_value);

Parameters

  • fd: timer fd.
  • flags: 0 for relative time or TFD_TIMER_ABSTIME for absolute time.
  • new_value: new initial expiration and interval.
  • old_value: optional previous timer setting.

Return Value

  • Success: returns 0.
  • Failure: returns -1 and sets errno.

Minimal Example

struct itimerspec its = {0};
its.it_value.tv_sec = 1;
its.it_interval.tv_sec = 1;

if (timerfd_settime(tfd, 0, &its, NULL) < 0) {
    perror("timerfd_settime");
}

Common Pitfalls

  • A zero it_value disarms the timer.
  • A non-zero it_interval creates a periodic timer.
  • Read returns the number of expirations as uint64_t.