/*
* function: 使用setitimer函数实现定时以及周期定时
*
* 2020-12-23
*/
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>
void print(int sig)
{
// 注意:如果结尾不加\n,打印不出来,暂不知道原因
printf("catch signal %d,hello world!\n", sig);
}
int main(int argc, char *argv[])
{
signal(SIGALRM, print);
struct itimerval new_value{};
// 第一次定时时长
new_value.it_value.tv_sec = 2; // 2s
new_value.it_value.tv_usec = 0;
// 第一次之后每一次的定时时长
new_value.it_interval.tv_sec = 5; // 5s
new_value.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &new_value, NULL);
while(1); // 程序停止,等待SIGALRM信号
return 0;
}
setitimer.cpp
最新推荐文章于 2024-10-10 22:04:37 发布