Time stamp in the C programming language

Viewed 158986

How do I stamp two times t1 and t2 and get the difference in milliseconds in C?

11 Answers
#include <sys/time.h>

time_t tm = time(NULL);
char stime[4096];
ctime_r(&tm, stime);
stime[strlen(stime) - 1] = '\0';
printf("%s",stime);

This program clearly shows how to do it. Takes time 1 pauses for 1 second and then takes time 2, the difference between the 2 times should be 1000 milliseconds. So your answer is correct

#include <stdio.h>
#include <time.h>
#include <unistd.h>

// Name: miliseconds.c
// gcc /tmp/miliseconds.c -o miliseconds

struct timespec ts1, ts2; // time1 and time2

int main (void) {

    // get time1
    clock_gettime(CLOCK_REALTIME, &ts1);
    sleep(1); // 1 second pause
    // get time2
    clock_gettime(CLOCK_REALTIME, &ts2);
    // nanoseconds difference in mili
    long miliseconds1= (ts2.tv_nsec - ts1.tv_nsec) / 10000000 ;
    // seconds difference in mili
    long miliseconds2 = (ts2.tv_sec -  ts1.tv_sec)*1000;
    long miliseconds = miliseconds1 + miliseconds2;
    printf("%ld\n", miliseconds); 

    return 0;
}
Related