Linux C语言计时器使用及实例演示

一般来说,在linux系统中会为每个进程维护三种计时器:真实计时器、虚拟计时器以及实用计时器,一般都是使用真实计时器通过发送SIGALRM信号来进行工作的。

计时器相关函数:设置和获取计时器
函数原型:

include <sys/time.h>
int getitimer(int which, struct itimerval *curr_value);//设置计时器
int setitimer(int which, const struct itimerval *new_value,struct itimerval *old_value);//获取计时器

参数解析:
1)计时器的类型,三种类型分别如下:
ITIMER_REAL:真实计时器,统计程序消耗的真实时间,通过产生SIGALRM信号来进行工作的
ITIMER_VIRTUAL:虚拟计时器,统计程序在用户态下消耗的时间,通过产生SIGVTALRM信号来进行工作
TIMER_PROF:实用计时器,统计程序在用户态下和内核态下消耗的总时间,通过产生SIGPROF信号来进行工作
2)结构体指针,用于指定计时器的新值,类型如下:
struct itimerval
{
struct timeval it_interval; /* 间隔时间 */
struct timeval it_value; /* 启动时间 */
};
struct timeval
{
long tv_sec; /* 秒 */
long tv_usec; /* 微秒 1秒=10^6微秒 */
};
3)结构体指针,用于带出设置之前的旧值,如果不用带出之前的旧值,则该参数给NULL即可;
功能:主要用于获取/设置计时器的参数信息。

计时器使用实例演示:
这里写图片描述
这里写图片描述

以下是我的个人公众号,主要作为C/C++语言技术分享使用,该公众号里干货满满,如果您有对此博文的疑问或者java方面的问题也可以添加公众号交流讨论。最后,再次希望您能添加关注,互相交流互相学习共同进步:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/coding13/article/details/78743987