【问题标题】:Timer in C LinuxC Linux 中的定时器
【发布时间】:2014-04-02 16:57:46
【问题描述】:

我试图使用 gettimeofday 创建一个计时器。已调用函数“time”来重置和获取计时器的当前时间。但是当我试图获得第二齿值时,程序给出了垃圾值。请帮忙

#include<stdio.h>
#include <sys/time.h>
#include <stdlib.h>
struct timeval cur;
double time(int a);
main() {
    time(0);
    printf("%lf\n",time(1));
    sleep(3);
    printf("%lf\n",time(1));
}

double time(int a) {
    double rtime;
    if(a==0) {
        gettimeofday(&cur,NULL);
        rtime=(double)(cur.tv_sec);
        printf("%lf\n",rtime);
    } else if(a==1) {
        gettimeofday(&cur,NULL);
        return((double)(cur.tv_sec-rtime));
    }
}

【问题讨论】:

    标签: timer gettimeofday


    【解决方案1】:

    你的日常time() 不会记得rtime除非你 将rtime 指定为静态:

    static double rtime;
    

    而且:目前还不清楚您为什么将这些数字指定为双精度数。

    【讨论】:

    • 谢谢...它帮助“加倍”是为了我正在做的另一个实验。在我原来的应用程序中,我只使用了整数。
    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多