setitimer()为Linux的API,并非C语言的Standard Library,setitimer()有两个功能,一是指定一段时间后,才执行某个function,二是每间格一段时间就执行某个function,以下程序demo如何使用setitimer()。

/*
Filename : timer.cpp Description : setitimer() set the interval to run function Synopsis : #include <sys/time.h> int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue); struct itimerval { struct timerval it_interval; struct timerval it_value; }; struct timeval { long tv_sec; long tv_usec; }
*/ #include <stdio.h> // for printf() #include <unistd.h> // for pause() #include <signal.h> // for signal() #include <string.h> // for memset() #include <sys/time.h> // struct itimeral. setitimer() void printMsg(int); int main() { // Get system call result to determine successful or failed
int res = ; // Register printMsg to SIGALRM
signal(SIGALRM, printMsg); struct itimerval tick; // Initialize struct
memset(&tick, , sizeof(tick)); // Timeout to run function first time
tick.it_value.tv_sec = ; // sec tick.it_value.tv_usec = ; // micro sec. // Interval time to run function
tick.it_interval.tv_sec = ; tick.it_interval.tv_usec = ; // Set timer, ITIMER_REAL : real-time to decrease timer, // send SIGALRM when timeout res = setitimer(ITIMER_REAL, &tick, NULL);
if (res) { printf("Set timer failed!!/n"); } // Always sleep to catch SIGALRM signal while() { pause(); } return ;
} void printMsg(int num) { printf("%s","Hello World!!/n"); }

当setitimer()所执行的timer时间到了,会呼叫SIGALRM signal,itimerval.it_value设定第一次执行function所延迟的秒数, itimerval.it_interval设定以后每几秒执行function,所以若只想延迟一段时间执行function,只要设定 itimerval.it_value即可,若要设定间格一段时间就执行function,则it_value和it_interval都要设定,否则 funtion的第一次无法执行,就别说以后的间隔执行了。

setitimer()函数使用的更多相关文章

  1. UNIX环境高级编程——信号之kill、raise、killpg、alarm、pause、abort、sleep、usleep、nanosleep和setitimer函数

    一.kill, raise, killpg 函数 int kill(pid_t pid, int sig); int raise(int sig); int killpg(int pgrp, int ...

  2. setitimer函数

    和alarm函数类似,都用于定时操作: 函数原型:int setitimer(int which, const struct itimerval *new_value, struct itimerva ...

  3. setitimer()函数

    定时器时间函数 struct itimerval: struct itimerval *new_value,其定义如下: struct itimerval { struct timeval it_in ...

  4. Linux系统编程-setitimer函数

    功能:linux系统编程中,setitimer是一个经常被使用的函数,可用来实现延时和定时的功能. 头文件:sys/time.h 函数原型: int setitimer(int which, cons ...

  5. Signal ()函数详细介绍 Linux函数

    http://blog.csdn.net/ta893115871/article/details/7475095 Signal ()函数详细介绍 Linux函数 signal()函数理解 在<s ...

  6. linux c setitimer使用方法说明

    在linux c编程中.setitimer是一个比較经常使用的函数.可用来实现延时和定时的功能,网上有各种零零散散的使用方法说明,都仅仅提到了个别使用方法,今天抽出时间实践整理了一份比較具体的: 使用 ...

  7. Signal ()函数详细介绍 Linux函数(转)

    Signal ()函数详细介绍 Linux函数 收藏人:紫火神兵     2012-09-27 | 阅:5659  转:22    |   来源   |  分享               signa ...

  8. 转:函数signal()

    from:http://blog.sina.com.cn/s/blog_4b226b92010119l5.html 当服务器close一个连接时,若client端接着发数据.根据TCP协议的规定,会收 ...

  9. linux几种定时函数的使用

    Linux定时函数介绍: 在程序开发过程中,我们时不时要用到一些定时器,通常如果时间精度要求不高,可以使用sleep,uslepp函数让进程睡眠一段时间来实现定时, 前者单位为秒(s),后者为微妙(u ...

随机推荐

  1. 关于Delphi中二维数组的声明和大小调整(对非基本类型数据,小心内存泄漏)

    这是一个实例: procedure TMainForm.Button1Click(Sender: TObject);var  arr:array of array of string;begin  s ...

  2. live555 RTSP服务器建立及消息处理流程

    DynamicRTSPServer::creatnew():    1.调用继承自RTPSever::setUpOurSocket:        1.调用 GroupsockHelper 的 set ...

  3. Win32 GDI基础(笔记)

    1.GDI名字的意义 GDI Graphic Device Interface,我说不清和GUI有什么区别.可能一种针对设备,一种针对用户而言吧,反正以后都说GDI,也就是Windows的图形编程. ...

  4. Linux通过网卡驱动程序和版本号的信息

    检查卡制造商和信号 查看基本信息:lspci 查看详情:lspci -vvv   # 3小作文v 查看卡信息:lspci | grep Ethernet 查看网卡驱动 查看网卡驱动信息:lspci - ...

  5. xls与csv文件区别?

    xls 文件就是Microsoft excel电子表格的文件格式.CSV是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. 此文件,一行即为数据表的一行.生成数据表字段用半角逗号隔 ...

  6. BlogUI的使用

  7. 五毛的cocos2d-x学习笔记02-基本项目源码分析

    class AppDelegate : private cocos2d::Application private表示私有继承,cocs2d是一个命名空间.私有继承下,Application类中的pri ...

  8. Hibernate之工具类HibernateUtil

    原创文章,转载请注明:Hibernate之工具类HibernateUtil  By Lucio.Yang 1.最简单的工具类,实现SessionFactory的单例共享,session的管理 pack ...

  9. Laravel 5.1 ACL权限控制 四 之middleware

    1.创建Middleware php artisan make:middleware MustBeAnAdmin 2.实现 MustBeAnAdmin.php中的handle方法,判断登录的用户是否为 ...

  10. Linux和windows下的shutdown命令

    Linux下的shutdown命令 shutdown [options] [time] [wall] options: --help 获取帮助 -h 关机 -r 重启 -c 取消 -k 仅显示警告信息 ...