Linux系统编程之setitimer函数
setitimer函数 的使用
#include<stdio.h>
#include<sys/time.h>
int main()
{
struct itimerval myit={{0,0},{3,0}};
setitimer(ITIMER_REAL,&myit,NULL);
while(1)
{
printf("who can kill me?\n");
sleep(1);
}
return 0;
}
输出
了解signal函数
了解捕获信号的流程
#include<stdio.h>
#include<sys/time.h>
#include<signal.h>
//type void (*sighandler_t)(int);
//sighandler_t signal(int signum,sighandler_t handler);
void catch_sig(num)
{
printf("cat %d sig\n",num);
}
int main()
{
signal(SIGALRM,catch_sig); //注册SIGALARM信号的捕捉信号处理函数
struct itimerval myit={{3,0},{5,0}};//第一次等待5s,之后每隔3s
setitimer(ITIMER_REAL,&myit,NULL);//到达定时时间发送SIGALARM
while(1)
{
printf("who can kill me?\n");
sleep(1);
}
return 0;
}
输出
说明:第一次等待5s(It_value)时长打印输出。之后每次都是按照3s(it_interval)打印输出。