linux time

时间结构的转换关系

mllisecond 毫秒,   microsecond 微秒, nanosecond 纳秒

较为准确的等待10秒的写法:

while((s=sleep(10))); //因为sleep()有可能不到10秒就返回非0值

高精度(纳秒级)时间等待:

#include <time.h>
	struct timespec req={	.tv_sec=1,
		                    .tv_nsec=3000 }; //等待1.000003 s
	struct timespec rem, *a=&req, *b=&rem;
	while(nanosleep(a, b)&&errno==EINTR)
	{	struct timespec *tmp=a;
		a=b;
		b=tmp;
	}

准确时间等待:

    struct timespec ts;
	int ret;
	ret=clock_gettime(CLOCK_MONOTONIC, &ts);
	if(ret)
	{	perror("clock_gettime()");
		return;
	}
	ts.tv_sec+=1; 
	ret=clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &ts, NULL);//准确等到从clock_gettime()结束后1秒,这里返回
	if(ret)
	{	perror("clock_nanosleep()");
		return;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值