时间函数与定时器timerfd

时间结构体

struct timeval
{
__time_t tv_sec;        //Seconds.
__suseconds_t tv_usec;  //Microseconds.
};

struct timespec {
time_t tv_sec; // seconds
long tv_nsec; //  nanoseconds
};

struct tm {
   int tm_sec;    /* Seconds (0-60) */
   int tm_min;    /* Minutes (0-59) */
   int tm_hour;   /* Hours (0-23) */
   int tm_mday;   /* Day of the month (1-31) */
   int tm_mon;    /* Month (0-11) */
   int tm_year;   /* Year - 1900 */
   int tm_wday;   /* Day of the week (0-6, Sunday = 0) */
   int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */
   int tm_isdst;  /* Daylight saving time */
};

时间函数

gettimeofday函数

int gettimeofday(struct timeval*tv, struct timezone *tz);

gettimeofday()会把目前的时间用tv 结构体返回。tz可以设为NULL。函数执行成功后返回0,失败后返回-1,错误代码存于errno中。

clock_gettime函数

int clock_gettime(clockid_t clk_id, struct t
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
timerfd_settime函数是用于设置定时器函数,可以在指定时间间隔后触发一个事件。该函数的详细说明如下: 函数原型: ```c int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *old_value); ``` 参数说明: - fd: 操作的文件描述符,一般是由timerfd_create函数创建的定时器文件描述符。 - flags: 操作标志,一般为0。 - new_value: 定时器设置参数,包括定时器的起始时间定时器的间隔时间。 - old_value: 如果不为NULL,则获取定时器之前的参数。 返回值: - 成功:返回0。 - 失败:返回-1,errno设置为相应的错误代码。 示例代码: ```c #include <sys/timerfd.h> #include <time.h> int main() { int fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK); struct itimerspec new_value; new_value.it_interval.tv_sec = 1; // 定时器间隔1秒 new_value.it_interval.tv_nsec = 0; new_value.it_value.tv_sec = 1; // 定时器起始时间1秒 new_value.it_value.tv_nsec = 0; timerfd_settime(fd, 0, &new_value, NULL); return 0; } ``` 在上面的例子中,我们首先调用timerfd_create函数创建一个定时器的文件描述符,然后设置定时器的起始时间和间隔时间,最后调用timerfd_settime函数设置定时器参数即可。这个定时器每隔1秒就会触发一个事件。 需要注意的是,该函数设置的定时器是一次性的,即触发一次后就会自动销毁。如果需要循环触发定时器,需要在定时器触发事件的处理函数中重新设置定时器参数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值