函数原型:
int setitimer(int which, const struct itimerval *new_value,struct itimerval *old_value)
函数作用:
可用来实现延时和定时的功能
头文件:
#include <sys/time.h>
参数详解


用一把:一个例子
#include "head.h"
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>
void handler(int s)
{
printf("time out %d\n",s);
}
int main()
{
key_t key = ftok(".",1);
signal(SIGALRM,handler);
struct itimerval it;
memset(&it ,0x00,sizeof (it));
it.it_interval.tv_sec = 1;
it.it_value.tv_sec = 1;
setitimer(ITIMER_REAL,&it,NULL);
for(;;)
{
printf(".");
fflush(stdout);
sleep(1);
}
}
代码注释
signal(SIGALRM,handler);
//SIGALRM见另一篇文章
//1秒打一个点用来观看效果
for(;;)
{
printf(".");
fflush(stdout);
sleep(1);
}
更改值观察效果:
1.
19 it.it_interval.tv_sec = 1;
20 it.it_value.tv_sec = 1;

2.
19 it.it_interval.tv_sec = 3;
20 it.it_value.tv_sec = 1;

3.
19 it.it_interval.tv_sec = 3;
20 it.it_value.tv_sec = 2;

本文介绍如何利用setitimer函数实现延时和定时功能。通过一个具体示例,展示了如何设置信号处理函数并配置定时间隔,使得程序能够每隔一定时间执行特定任务。
506

被折叠的 条评论
为什么被折叠?



