diff options
Diffstat (limited to 'time')
-rw-r--r-- | time/ftime.c | 26 | ||||
-rw-r--r-- | time/sys/timeb.h | 3 | ||||
-rw-r--r-- | time/tst-ftime.c | 7 |
3 files changed, 18 insertions, 18 deletions
diff --git a/time/ftime.c b/time/ftime.c index 8bedc0d91e..b4bd58ecef 100644 --- a/time/ftime.c +++ b/time/ftime.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1994-2019 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 @@ -15,27 +16,18 @@ License along with the GNU C Library; if not, see <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; } diff --git a/time/sys/timeb.h b/time/sys/timeb.h index b958dc3e4a..5c16f79da2 100644 --- a/time/sys/timeb.h +++ b/time/sys/timeb.h @@ -36,7 +36,8 @@ struct timeb /* Fill in TIMEBUF with information about the current time. */ -extern int ftime (struct timeb *__timebuf); +extern int ftime (struct timeb *__timebuf) + __nonnull ((1)) __attribute_deprecated__; __END_DECLS diff --git a/time/tst-ftime.c b/time/tst-ftime.c index 4b7e90cc03..39d94a1b26 100644 --- a/time/tst-ftime.c +++ b/time/tst-ftime.c @@ -18,6 +18,7 @@ #include <sys/timeb.h> #include <stdio.h> +#include <libc-diag.h> static int do_test (void) @@ -29,12 +30,18 @@ do_test (void) { prev = curr; + /* ftime was deprecated on 2.31. */ + DIAG_PUSH_NEEDS_COMMENT; + DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations"); + if (ftime (&curr)) { printf ("ftime returned an error\n"); return 1; } + DIAG_POP_NEEDS_COMMENT; + if (curr.time < prev.time) { printf ("ftime's time flowed backwards\n"); |