目录
setitimer函数(定时器)
功能
设置定时器(闹钟)。可代替alarm函数。精度微秒us,可以实现周期定时。
头文件
#include<sys/time.h>
参数介绍
int setitimer(int which,const struct itimerval *new_value,struct itimerval *old_value)
第一个which参数
指定定时方式
1)自然定时:ITIMER_REAL - 14) SIGALRM计算自然时间
2)虚拟空间计时(用户空间):工T工MER_VIRTUAL - 26) SIGVTALRM︰只计算进程占用 cpu的时间)
3)运行时计时(用户+内核):ITIMER_PROF - 27) STGPROF计算占用cpu及执行系统调用的时间new_value: struct itimerva1,负责设定timeout时问
第二个struct itimerval参数
struct itimerva1 {
struct timerval it_interval; //闹钟触发周期
struct timerva1 it_value;/l/闹钟触发时间
};
第三个struct itimerval参数
struct itimerval{
long tv_sec; //秒
long tv_usec; //微秒
}
返回值
成功:0
失败:-1
官方说明
signal函数
typedef void(*sighandler_t(int) ;
头文件
#include<signal.h>
参数介绍
sighandler_t signa1(int signum,sighandler_t handler);
第一个signum参数
信号的编号,建议使用宏定义,因为系统不一样的数值可能也不一样。
可以通过命令:kill -l(l为字母L)查询信号编号
第二个handler参数
取值有3种情况:
SIG_ IGN: 忽略该信号
SIG_ DFL: 执行系统默认动作
信号处理函数名:自定义信号处理函数,如: func()
回调函数的定义如下:
void func(int signo)
{
// signo为触发的信号,为signal()第一个参数的值
}
返回值
成功:第一次返回NULL, 下一 次返回此信号上-次注册的信号处理函数的地址。如果需要使用此返回值,必须在前面先声明此函数指针的类型。
失败:返回SIG_ ERR
官方说明
代码如下
头文件和函数部分
主函数部分
运行结果
总结
实际运用场景:用于游戏刷新,时间更新,通信更新等等更新信息的操作。
正在努力奋斗中,有问题还请多多提出和包含。
有问题才有进步!