void signalHandler(int signo)
{
switch (signo){
case SIGALRM:
printf("Caught the SIGALRM signal!\n");
handleHeartbeat();
break;
}
} void startHeart() {
/*struct itimerval { struct timeval it_interval; *//* 第一次之后每隔多长时间 *//* struct timeval it_value; *//* 第一次调用要多长时间 *//* };
struct timeval { long tv_sec; *//* 秒 *//* long tv_usec; *//* 微秒,1秒 = 1000000 微秒*//* };*/
signal(SIGALRM, signalHandler);
struct timeval tv_interval = {0, HEART_EXPIRE}; /*第一次之后每隔多长时间 */
struct timeval tv_value = {5, 0}; /* 第一次调用要多长时间 */
struct itimerval it;
it.it_interval = tv_interval;
it.it_value = tv_value;
setitimer(ITIMER_REAL, &it, NULL);
}
05-26 00:14