【转】Linux下c语言写的定时器(计时器)
【实现功能】:下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成的计时器保存到myTimer中,这样通过多次调用,就可以在同一个进程中生成多个计时器;定义timeout()信号处理函数,每隔一秒产生一个信号,通过调用timeout()对所有的定时器扫描一遍,检查哪些计时器超时。
【程序代码】:如下
执行情况如下:
[root@test timer4linux]# make timer4linux
cc timer4linux.c -o timer4linux
timer4linux.c: In function ‘timeout’:
timer4linux.c:26: warning: incompatible implicit declaration of built-in function ‘printf’
[root@test timer4linux]# ls
timer4linux timer4linux.c
[root@test timer4linux]# ./timer4linux
Time: 1
Time: 2
Time: 3
Time: 4
------Timer 1: --Hello Aillo!
Time: 5
------Timer 2: --Hello Jackie!
Time: 6
------Timer 3: --Hello PiPi!
Time: 7
Time: 8
来自:http://hi.baidu.com/symdfbb/item/a7024e115cae7302b98a1a0b
【实现功能】:下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成的计时器保存到myTimer中,这样通过多次调用,就可以在同一个进程中生成多个计时器;定义timeout()信号处理函数,每隔一秒产生一个信号,通过调用timeout()对所有的定时器扫描一遍,检查哪些计时器超时。
【程序代码】:如下
执行情况如下:
[root@test timer4linux]# make timer4linux
cc timer4linux.c -o timer4linux
timer4linux.c: In function ‘timeout’:
timer4linux.c:26: warning: incompatible implicit declaration of built-in function ‘printf’
[root@test timer4linux]# ls
timer4linux timer4linux.c
[root@test timer4linux]# ./timer4linux
Time: 1
Time: 2
Time: 3
Time: 4
------Timer 1: --Hello Aillo!
Time: 5
------Timer 2: --Hello Jackie!
Time: 6
------Timer 3: --Hello PiPi!
Time: 7
Time: 8
来自:http://hi.baidu.com/symdfbb/item/a7024e115cae7302b98a1a0b
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6833/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表