具体数据结构和用法可以man setitimer查询,很简单易懂的一段英文,应该没什么难度,下面是我联系的一个小例子:
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <signal.h>
#include <string.h>
int main()
{
void countdown(
int);
signal(
SIGALRM, countdown);
struct itimerval new_timeset;
memset(&new_timeset,
0,
sizeof(new_timeset));
new_timeset.it_interval.tv_sec =
1L;
new_timeset.it_interval.tv_usec =
0L;
new_timeset.it_value.tv_sec =
2L;
new_timeset.it_value.tv_usec =
0L;
if(setitimer(ITIMER_REAL, &new_timeset,
NULL) == -
1)
perror(
"set timer");
else
while(1)
pause();
return 0;
}
void countdown(
int signum)
{
static int num =
10;
printf(
"%d..", num--);
fflush(
stdout);
if(num < 0)
{
printf(
"DONE!\n");
exit(
0);
}
}
分享到:
相关推荐
Linux下对时间进行运算,如果是到秒级的,一般是用time之类的函数实现。文中介绍了Linux下精确到微秒级的时间操作函数。主要是用到了gettimeofday函数,并且介绍了这个函数的结构。
下面小编就为大家带来一篇浅谈linux几种定时函数的使用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
//linux只允许单进程拥有一个定时器,因此在linux下的单进程中要使用多个定时器,则需要自己维护管理 // //这个实现允许用户使用多个自定义的定时器,每个自定义的定时器将周期地被触发直到其被删除。实现的主要思路...
在Linux的0号中断是一个定时器中断。...Linux的OS时钟的物理产生原因是可编程定时/计数器产生的输出脉冲,这个脉冲送入CPU,就可以引发一个中断请求信号,我们就把它叫做时钟中断。 “时钟中断”是特
内核的调度操作分为触发和执行两个部分,触发时仅仅设置一下当前进程的TIF_NEED_RESCHED...定时中断处理函数中会调用schedule_tick()用于处理关于调度的周期性检查和处理,其调用路径是和时钟处理有关的tick_periodic
一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号,还有那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种...
定时器管理器,添加定时器定时处理函数,删除定时器。
linux 下使用红黑树实现的多线程定时器, 定时回调对应的回调函数,定时单位为毫秒。
芬兰青年Linus Torvalds和其杰作的传奇故事吸引了无数的电脑爱好者尝试去使用Linux,但他们中的大多数人却被Unix类操作系统传统的枯燥的字符界面、艰涩难懂的操作命令和数量庞大的基本概念以及基础知识所吓退。Linux...
在 Linux 中,守护进程可以使用 C 语言编程来实现,通过 fork 和 setsid 函数来创建守护进程。 fork 函数创建一个新进程,而 setsid 函数将进程从其父进程中分离出来,使其成为一个独立的会话期。同时,守护进程也...
任务简述:使用Python自动化程序,把file.txt在早上6点准时拖动到微信并发送。 0 准备 首先需要考虑的是如何通过Python模拟鼠标操作。在此我货比三家: module stars latest commit Pyuserinput 903 2016.2.26...
在Linux和Windows上的定时器,可以每隔多少秒定时调用一个函数。
--> 修改了showmessage函数 phpcms/modules/admin/classes/admin.class.php -->新增了check_shell方法 -->修改了get_siteid方法 对采集模块的改动: 1、新增了正则表达式匹配功能 2、单一网页采集增加了可重复...
首先看看select函数原型如下: 代码如下:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);参数说明:slect的第一个参数nfds为fdset集合中最大描述符值加1,...
7、Linux系统提供了alarm( )和setitimer( )系统调用作为定时器的功能,要求用户使用这两个函数设计程序,让程序每隔一秒发出一个SIGALRM信号,每隔0.5秒发出一个SIGVTALRM信号。 8、编写程序,在主进程中创建一个子...
可用来实现延时和定时的功能,网上有各种零零散散的使用方法说明,都仅仅提到了个别使用方法,抽出时间实践整理了一份比?具体的: 使用时须要引入的头文件: #include setitimer函数原型: int ...
在某些程序中,有一些特殊的功能需要用到定时执行,如果熟悉Linux的朋友肯定会说这不是容易吗,直接来个计划任务crontab不久实现了吗?这的确是可以实现,但必须是提前知道具体的执行时间,然后才能写到计划任务里去...
调度程序所使用的函数 多处理器系统中运行队列的平衡 与调度相关的系统调用 第八章内存管理 页框管理 内存区管理 非连续内存区管理 第九章进程地址空间 进程的地址空间 内存描述符 线性区 ...
使用这种方法缺点比较明显,在Linux系统中,sleep类函数不能保证精度,尤其在系统负载比较大时,sleep一般都会有超时现象。 2,使用信号量SIGALRM + alarm() 这种方式的精度能达到1秒,其中利用了*nix系统的信号量...