/* gettime -- get the system clock
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
int
gettime (struct timespec *ts)
{
-#if defined CLOCK_REALTIME && HAVE_CLOCK_SETTIME
+#if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
if (clock_gettime (CLOCK_REALTIME, ts) == 0)
return 0;
#endif
+#if HAVE_GETTIMEOFDAY
{
struct timeval tv;
- int r = gettimeofday (&tv, 0);
- if (r == 0)
+ if (gettimeofday (&tv, 0) == 0)
{
ts->tv_sec = tv.tv_sec;
ts->tv_nsec = tv.tv_usec * 1000;
+ return 0;
}
- return r;
}
+#endif
+
+ {
+ time_t t = time (0);
+ if (t != (time_t) -1)
+ {
+ ts->tv_sec = t;
+ ts->tv_nsec = 0;
+ return 0;
+ }
+ }
+
+ return -1;
}