# time

## NAME



           time - get time in seconds
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <time.h>**
    
           **time_t time(time_t *_Nullable** _tloc_**);**
    


## DESCRIPTION



           **time**() returns the time as the number of seconds since the Epoch,
           1970-01-01 00:00:00 +0000 (UTC).
    
           If _tloc_ is non-NULL, the return value is also stored in the memory
           pointed to by _tloc_.
    


## RETURN VALUE



           On success, the value of time in seconds since the Epoch is
           returned.  On error, _((time_t) -1)_ is returned, and _errno_ is set
           to indicate the error.
    


## ERRORS



           **EOVERFLOW**
                  The time cannot be represented as a _time_t_ value.  This can
                  happen if an executable with 32-bit _time_t_ is run on a
                  64-bit kernel when the time is 2038-01-19 03:14:08 UTC or
                  later.  However, when the system time is out of _time_t_
                  range in other situations, the behavior is undefined.
    
           **EFAULT** _tloc_ points outside your accessible address space (but see
                  BUGS).
    
                  On systems where the C library **time**() wrapper function
                  invokes an implementation provided by the vdso(7) (so that
                  there is no trap into the kernel), an invalid address may
                  instead trigger a **SIGSEGV** signal.
    


## VERSIONS



           POSIX.1 defines _seconds since the Epoch_ using a formula that
           approximates the number of seconds between a specified time and
           the Epoch.  This formula takes account of the facts that all years
           that are evenly divisible by 4 are leap years, but years that are
           evenly divisible by 100 are not leap years unless they are also
           evenly divisible by 400, in which case they are leap years.  This
           value is not the same as the actual number of seconds between the
           time and the Epoch, because of leap seconds and because system
           clocks are not required to be synchronized to a standard
           reference.  Linux systems normally follow the POSIX requirement
           that this value ignore leap seconds, so that conforming systems
           interpret it consistently; see POSIX.1-2018 Rationale A.4.16.
    
           Applications intended to run after 2038 should use ABIs with
           _time_t_ wider than 32 bits; see time_t(3type).
    
       **C library/kernel differences**
           On some architectures, an implementation of **time**() is provided in
           the vdso(7).
    


## STANDARDS



           C11, POSIX.1-2008.
    


## BUGS



           Error returns from this system call are indistinguishable from
           successful reports that the time is a few seconds _before_ the
           Epoch, so the C library wrapper function never sets _errno_ as a
           result of this call.
    
           The _tloc_ argument is obsolescent and should always be NULL in new
           code.  When _tloc_ is NULL, the call cannot fail.
    


* * *