鱼C论坛

 找回密码
 立即注册
查看: 1396|回复: 2

[技术交流] signal函数和setitimerval函数

[复制链接]
发表于 2020-3-10 18:48:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 就是要努力呀 于 2020-3-10 18:52 编辑

signal(int__sig, __sighandler_t__handler)
在头文件<signal.h>中

sig参数 设置要接受的信号类型
https://blog.csdn.net/weibo1230123/article/details/81505152

handler参数 接受到信号执行的动作
三个可选项:
1.SIG_DFL 默认处理
2.SIG_IGN 忽略信号
3.定义一个特殊函数来处理信号

setitimerval(int which, const struct itimerval *new_value, const struct itimerval *old_value)
在头文件<sys/time.h>中

which表示类型
三个可选项:
1.ITIMER_REAL 以系统真是时间来计算,它送出SIGALRM信号

2.ITIMER_VIRTUAL 以该进程在用户态下话费的时间来计算,它送出SIGVTALRM信号

3.ITIMER_PROF 以该进程在用户态和内核态下所费时间来计算,它送出SIGPROF信号

第二个参数是一个itimerval类型的指针 用来定时

第三个参数同样是一个itimerval类型的指针 一般设置为NULL


itimerval 结构体

struct itimerval
{
struct timerval it_interval; //计时器间隔多长时间发送信号
struct timeval it_value; //计时器第一次发送信号的时间间隔
}

struct timerval
{
tv_sec; //秒
tv_usec; //微秒
}
setitimerval工作原理对it_value进行倒计时,当it_value为0时送出which指定的信号,在将it_value重置为it_interval,重复进行

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-10 18:51:58 | 显示全部楼层
struct timerval
{
tv_sec; //秒
tv_usec; //毫秒
}

这个不是毫秒,是微秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-10 18:52:40 | 显示全部楼层
人造人 发表于 2020-3-10 18:51
这个不是毫秒,是微秒

哦哦谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 19:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表