首页 > 代码库 > Linux 定时器

Linux 定时器

也许,一本书你从头到尾都看完了,但也只是看完了。

也许,你似懂非懂的理解了。

但,当你准备用学来的这些东西做东西时,才发现:原来你根本没懂!

看书重要的不是看了多少,重要的是理解了多少,理解的多深多广!

一个傅里叶变换,一个小波,我怎么越看越晕?

“学以致用”这四个字越来越被教育所忽视了。

如果不是图像处理我真不知道线性代数原来可以这么牛逼!

.........................................

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/time.h>

int limit = 10;

void timeout_info(int signo)
{

	if(limit == 0)
	{
		printf("Sorry, time limit reached.\n");
		exit(0);
	}
	printf("only %d senconds left.\n", limit--);
}


void init_sigaction(void)
{
	struct sigaction act;
	
	act.sa_handler = timeout_info;
	act.sa_flags = 0;
	sigemptyset(&act.sa_mask);
	sigaction(SIGPROF, &act, NULL);
}

void init_time(void)
{
	struct itimerval val;
	
	val.it_value.tv_sec = 1;
	val.it_value.tv_usec = 0;
	val.it_interval = val.it_value;
	setitimer(ITIMER_PROF, &val, NULL);

}

void main(int argc, char* argv[])
{
	init_sigaction();
	init_time();
	printf("You have only 10 seconds for thinking.\n");
	
	while(1);
	exit(0);

}