社区
Linux/Unix社区
帖子详情
怎么设置时钟
lovepeacer
2004-03-31 05:52:00
类似vc中的settimer()
...全文
60
1
打赏
收藏
怎么设置时钟
类似vc中的settimer()
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vctony
2004-03-31
打赏
举报
回复
int getitimer(int which, struct itimerval *value);
int setitimer(int which,conststruct itimerval *value, struct itimerval *ovalue);
下面我们具体学习一下各个参数的含义。
系统给每个进程提供了3个定时器,每个定时器在各自不同的域里面计数。当任何一个timer计数到结束了,系统就发送一个信号(signal)给该进程,同时计数器重置。
一共支持以下3中计数器形式:
ITIMER_REAL 在real time中计数器减1,然后等计数往比后发送SIGALRM信号。
ITIMER_VIRTUAL 当进程在执行的过程中计数,然后当计数完毕后发送SIGVTALRM信号给该进程。
ITIMER_PROF 在该进程被执行和系统在代表该进程执行的时间都进行计数。与ITIMERVIRTUAL比较,这个计时器可以同时记录该进程在用户态和内核态执行过程中消耗的时间。当计数完毕后,SIGPROF信号将发送给进程。
Timer的值采用如下的结构体:
struct itimerval {
struct timeval it_interval; /* next value */
struct timeval it_value; /* current value */
};
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};
gettimer(2)用当前的设置的值填充value这个变量参数指向的结构体,而which参数指明查询的计数器的类型(ITIMER_REAL、 ITIMER_VIRTUAL 和 ITIMER_PROF中的一个)。结构体重的成员变量it_value中返回的是当前计数器还剩下的计数值;如果该成员变量返回的值是0,则表示该计时器被禁止了。与之类似,it_interval设置为计数器reset后的初始值。
Settimer(2)通过输入参数value来设置指定的timer的相关属性。如果ovalue返回后的值非0,则该变量里面存储了timer以前的旧的设置值。
计数器计数从it_value开始,减1操作,一直减到0;然后产生一个信号给使用该计时器的进程,然后reset计数器为it_interval。如果把timer设置为0,也就是说设置it_value为0或者当计数器计数完毕后,而it_interval为0,这时候计数器就停止工作。
这里,tv_sec和tv_usec同时可以用来检测timer的的持续时间。
返回值比较简单,如果成功则返回0,否则返回-1,然后相应的errno被设置为如下预先定义的一些值:
EFAULT 参数value 和 ovalue 指针不合法。
EINVAL which 的值不合法,不是ITIMER_REAL、 ITIMER_VIRT或者 ITIMER_PROF 中的一个。
一些注意事项:
在Linux环境下,产生和发送一个信号是截然不同的,而且同时只能有一个信号被发送给进程。这就可能存在一个小问题,例如,当系统存在一个非常繁重的作业调度的时候,如果采用ITIMER_REAL这种计时器,可能计数完毕,而前一次计数完毕后发出的信号还没有发送给用户进程,这时候,第二次的信号将被丢弃。
FPGA实现多功能电子
时钟
(
时钟
+闹钟+
设置
时钟
+
设置
闹钟+蜂鸣器)
显示
时钟
状态:按key[1]键可以进入
设置
时钟
状态 按key[4]键可以进入显示闹钟状态
设置
时钟
状态:在此状态用户可以自行
设置
当前时间,进入该状态默认调节秒位:按key[2]键可以让秒位+1;按key[3]键可以让秒位-1。调节...
单片机 可
设置
八个闹钟的智能
时钟
程序
可
设置
八个闹钟的智能
时钟
程序可
设置
八个闹钟的智能
时钟
程序可
设置
八个闹钟的智能
时钟
程序可
设置
八个闹钟的智能
时钟
程序可
设置
八个闹钟的智能
时钟
程序可
设置
八个闹钟的智能
时钟
程序可
设置
八个闹钟的智能
时钟
程序可...
javaGUI界面的多功能日历(日历、记事本、校历显示、
时钟
、
设置
闹钟、整点报时、
设置
图片背景)
系统将日历、记事本、校历显示、
时钟
、
设置
闹钟、整点报时、
设置
图片背景等众多功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容,同时可以
设置
校历开始的时间以及一学期校历的长度...
嵌入式stm32f411+电子
时钟
可
设置
闹钟修改时间+电压温度显示
本资源使用stm32f411,结合软件CubeMX、Keil实现了电子
时钟
的设计。 文档中附上答辩ppt,对部分程序做了一个解释说明。...利用RTC显示日期和时间、修改时间和
设置
闹钟、闹钟响应、显示ADC采集电压和温度。
设计一个以AT89C51为核心的电子钟。可以实现时间显示和
设置
闹钟功能
用89C51单片机设计一个电子钟,有8位数码管显示时分秒,具有
时钟
功能,并且带有三个闹钟功能,有一路输出控制蜂鸣器,提示设定闹钟已到。 在AT89C51单片机内部对机器周期进行计数,从而得到定时。采用单片机的内部...
Linux/Unix社区
23,125
社区成员
74,509
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章