大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
Linux定时器实验
Linux第六次实验及分析报告
实验要求:
1)在用户态编写一个程序,该程序设定一个定时器,在时间到期的时候做出某种可观察的响应(方法不限)
2)分析你的程序的实际执行借助了内核的哪些机制
3)提交实验与分析报告
一:在用户态编写一个程序,该程序设定一个定时器,在时间到期的时候做出某种可观察的响应(方法不限)
G++进行编译
运行结果如下:
可见调用间隔定时器定时10秒成功!
二:分析你的程序的实际执行借助了内核的哪些机制which:间歇计时器类型,有三种选择
ITIMER_REAL //数值为0,计时器的值实时递减,发送的信号是SIGALRM。ITIMER_VIRTUAL //数值为1,进程执行时递减计时器的值,发送的信号是SIGVTALRM。ITIMER_PROF //数值为2,进程和系统执行时都递减计时器的值,发送的信号是SIGPROF。
void (*signal(int signum, void (*handler)(int)))(int);在使用该调用的进程中加入以下头文件: #include 上述声明格式比较复杂,如果不清楚如何使用,也可以通过下面这种类型定义的格式来使用(POSIX的定义): typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler) 在调用中,参数signum指出要设置处理方法的信号。第二个参数handler是一个处理函数,或者是 SIG_IGN:忽略参数signum所指的信号。 SIG_DFL:恢复参数signum所指信号的处理方法为默认值。 传递给信号处理例程的整数参数是信号值,这样可以使得一个信号处理例程处理多个信号。系统调用signal返回值是指定信号signum前一次的处理例程或者错误时返回错误代码SIG_ERR。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158881.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...