对于程序中需要定时去check某些变量或者function返回结果的功能,最早就是用最简单的sleep()的一行语句,虽然可以实现,但是需要主程序一直等待一段时间,无论是否提前有返回值。
后面就想到可以用time()来实现相同的功能,和sleep不同的地方就是,如果check到有返回,可以立即break,不用于一直在wait状态。
简单代码如下:
#include<time.h>
#include<unistd.h>
main()
{
int resp;
time_t startTime = time(0);
usleep(1000);// wait 1s for return data;
while(1)
{
if (time(0)-startTime >10) //define 10s time out
{
fprintf(stderr, "Time Out\n");
return 0;
}
if(get_data(&resp) == TRUE) //get data?
{
break;
}
}
if (resp == GET_OK)
{
fprintf(stderr, "Get OK\n");}
else if (resp == GET_INVALID)
{
fprintf(stderr, "Get Invalid\n");
}
else
fprintf(stderr, "Get Error\n");
return 0;
}
}
有一种旅行,叫单车旅行。它没有奢侈准备,