Таймер в C Linux

Я пытался создать таймер, используя gettimeofday. Была вызвана функция "время" для сброса и получения текущего времени для таймера. Но программа выдает значения мусора, когда я пытался получить значение второго зубца. Пожалуйста помоги

#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));
    }
}

1 ответ

Ваша рутина time() не вспомню rtimeесли вы не укажете rtime как статический:

static double rtime;

И еще: неясно, почему вы указываете эти числа как двойные.

Другие вопросы по тегам