summaryrefslogtreecommitdiff
path: root/time/ftime.c
diff options
context:
space:
mode:
Diffstat (limited to 'time/ftime.c')
-rw-r--r--time/ftime.c28
1 files changed, 10 insertions, 18 deletions
diff --git a/time/ftime.c b/time/ftime.c
index 622c6ce8e8..b4bd58ecef 100644
--- a/time/ftime.c
+++ b/time/ftime.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+/* Deprecated return date and time.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -13,29 +14,20 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ <https://www.gnu.org/licenses/>. */
-#include <errno.h>
-#include <time.h>
#include <sys/timeb.h>
+#include <time.h>
int
ftime (struct timeb *timebuf)
{
- int save = errno;
- struct tm tp;
-
- __set_errno (0);
- if (time (&timebuf->time) == (time_t) -1 && errno != 0)
- return -1;
- timebuf->millitm = 0;
-
- if (__localtime_r (&timebuf->time, &tp) == NULL)
- return -1;
-
- timebuf->timezone = tp.tm_gmtoff / 60;
- timebuf->dstflag = tp.tm_isdst;
+ struct timespec ts;
+ __clock_gettime (CLOCK_REALTIME, &ts);
- __set_errno (save);
+ timebuf->time = ts.tv_sec;
+ timebuf->millitm = ts.tv_nsec / 1000000;
+ timebuf->timezone = 0;
+ timebuf->dstflag = 0;
return 0;
}