• 如何使用Unix提供的间隔时钟器?(tricker_demo)


    / * ticker_demo.c
    *演示了使用间隔计时器来生成reqular
    *信号,这些信号又被捕获并用于倒计时
    * /

    #include <stdio.h>
    #include <sys/time.h>
    #include <signal.h>

    int main()
    {
    void countdown(int);

    signal(SIGALRM,countdown);
    if(set_ticker(500)==-1)
    perror("set_ticker");
    else
    while(1) pause();
    return 0;
    }

    void countdown(int signum)
    {
    static int num=10;
    printf("%d..",num--);
    fflush(stdout);
    if(num<0){
    printf("DONE! ");
    exit(0);
    }
    }

    / * [来自set_ticker.c]
    * set_ticker(number_of_milliseconds)
    *安排间隔计时器定期发布SIGALRM
    *错误时返回-1,确定为0
    * arg(以毫秒为单位),转换为整秒和微秒
    * /

    int set_ticker( int n_msecs )
    {
    struct itimerval new_timeset;
    long n_sec, n_usecs;

    n_sec = n_msecs / 1000 ; /* int part */
    n_usecs = ( n_msecs % 1000 ) * 1000L ; /* remainder */

    new_timeset.it_interval.tv_sec = n_sec; /* set reload */
    new_timeset.it_interval.tv_usec = n_usecs; /* new ticker value */
    new_timeset.it_value.tv_sec = n_sec ; /* store this */
    new_timeset.it_value.tv_usec = n_usecs ; /* and this */

    return setitimer(ITIMER_REAL, &new_timeset, NULL);
    }

  • 相关阅读:
    Linux常用命令
    安装最新版的wampserver,可以兼容php5和php7
    PHP程序员的技术成长规划
    ztreeSearch
    xmlUtil 解析 创建
    EXCEL 读取
    线程池 Future 带返回结果
    cxf 创建动态webService
    Map 和 javaBean转换
    线程池 http请求
  • 原文地址:https://www.cnblogs.com/shiheyuanfang/p/14530453.html
Copyright © 2020-2023  润新知