timerfd API 是Linux系统特有的,Linux是在内核版本2.6.25中提供的。它可以从文件描述符中读取所创建定时器的到期通知。因为可以使用select()、poll()和epoll()将这种文件描述符同其他描述符一同进行监控。
这组API中的3个系统调用,其操作与timer_create()、timer_settime()和timer_gettime()相类似。
新加入的第1个系统调用时timerfd_create(),它会创建一个新的定时器对象,并返回一个指代该对象的文件描述符。
#include <sys/timerfd.h>
int timerfd_create(int clockid, int flags);
返回:若成功返回对应的描述符,若失败返回-1
参数clockid的值可以设置为CLOCK_REALTIME或CLOCK_MONOTONIC。参考下表。
时 钟 I D | 描 述 |
CLOCK_REALTIME | 可设定的系统级实时时钟 |
CLOCK_MONOTONIC | 不可设定的恒定态时钟 |