#include <stdio.h> /* printf() */
#include <unistd.h> /* pause() */
#include <signal.h> /* signal() */
#include <string.h> /* memset() */
#include <sys/time.h> /* struct itimerval, setitimer() */
void connect_back( int signo )
{
printf( "haha\n" );
}
void set_timer( void )
{
struct itimerval tick;
signal( SIGALRM, connect_back );
memset( &tick, 0, sizeof(tick) );
/* 第一次运行超时时间 */
tick.it_value.tv_sec = 1;
tick.it_value.tv_usec = 0;
/* 第一次后时钟的时间间隔 */
tick.it_interval.tv_sec = 3;
tick.it_interval.tv_usec = 0;
if ( setitimer( ITIMER_REAL, &tick, NULL ) < 0 )
{
printf( "Set timer failed!\n" );
}
return;
}
int main()
{
set_timer();
/* When get a SIGALRM, the main process will enter another loop for pause() */
while ( 1 )
{
pause();
}
return(0);
}