Re: gettimeofday problem

From: Christian Robert (christian.robert@polymtl.ca)
Date: Tue Jun 25 2002 - 04:17:52 EST


John Alvord wrote:
>
> Maybe this is the result of floating point rounding errors. Floating
> point is notorious for occaisional strange results. I suggest redoing
> the test program to keep all results in integer and seeing what
> happens...
>
> john

You were close.

Programming error on my part.

This modified subroutine does correct my test.
Notice the (LL) cast on 1000000

Computation was done on 32 bits integer then assign on the 64 bits integer.

sorry.

ps: It may help explain the other > 1 hour time jump I've seen in an
    other thread.
 

LL GetTime (void)
{
  struct timeval tv;
  LL retval;
  int rc;

  while (0 != (rc = gettimeofday (&tv, NULL)))
    printf ("Wow! gettimeofday () returned %d\n", rc);

  retval = (tv.tv_sec * (LL)1000000) + (tv.tv_usec);

  return retval;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jun 30 2002 - 22:00:09 EST