Linux操作系统实现秒表计时器

本文介绍了Linux环境下,通过信号处理实现秒表计时器的方法。系统为每个进程维护了真实计时器、虚拟计时器和实用计时器,分别记录不同状态下的运行时间。通过getitimer和setitimer系统调用来设置和获取计时器,以实现定时操作。这两个函数可以设置不同的计时器类别,如真实计时器、虚拟计时器和实用计时器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习Linux环境高级编程中的信号处理中写的秒表计时器。

计时器是用来记录进程的运行时间的,系统会为每个进程记录三个计时器:
真实计时器:程序实际运行的时间
虚拟计时器:程序在用户态所消耗的时间
实用计时器:程序在内核态加用户态所消耗的时间之和
程序的实际运行时间=用户时间+内核时间+睡眠时间

使用计时器设置定时操作:
先设置一个时间a,表示时钟信号在a时间后发生,在设置一个时间b,表示每隔b时间来一次

int getitimer(int which, struct itimerval *curr_value);
功能:设置当前的时钟
which:计时器的类别
ITIMER_REAL/SIGALRM 真实计时器
ITIMER_VIRTUAL/SIGVTALRM 虚拟计时器
ITIMER_PROF/SIGPROF 实用计时器

int setitimer(int which, const struct itimerval *new_value,struct itimerval *old_value);
功能:设置新的时钟
which:计时器的类别
new_value:新设置的计时器
old_value:获取旧的计时器(不需要可以给NULL)

#include<stdio.h>
#include<sys/time.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

watchman_Xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值