linux time

时间结构的转换关系

linux time_第1张图片

mllisecond 毫秒,   microsecond 微秒, nanosecond 纳秒

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

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

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

#include 
	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;
	}

 

你可能感兴趣的:(cmd)