NOM

time - donner l'heure en secondes

BIBLIOTHÈQUE

Bibliothèque C standard ( libc, -lc)

SYNOPSIS

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

DESCRIPTION

time() renvoie la date sous la forme du nombre de secondes depuis l'époque POSIX (Epoch), 1er janvier 1970 à 00:00:00 (UTC).
Si tloc n'est pas NULL, le code de retour est également stockée dans la structure de mémoire vers laquelle il pointe.

VALEUR RENVOYÉE

S'il réussit, l'appel time renvoie le nombre de secondes écoulées depuis l'époque POSIX. S'il échoue, la valeur ((time_t) -1) est renvoyée, et errno est défini pour préciser l'erreur.

ERREURS

EFAULT
tloc pointe en dehors de l'espace d'adressage qui vous est accessible (mais voir BOGUES).
Sur des systèmes où la fonction enveloppe time() de la bibliothèque C appelle une implémentation fournie par vdso(7) (pour ne pas créer de faille dans le noyau), une adresse non valable peut alors provoquer un signal SIGSEGV.

STANDARDS

SVr4, 4.3BSD, C99, POSIX.1-2001. POSIX ne précise pas de condition d'erreur.

NOTES

POSIX.1 définit le nombre de secondes écoulées depuis l'époque POSIX grâce à une formule qui est une approximation du nombre de secondes entre une date spécifiée et l'époque. Cette formule prend en compte le fait que les années divisibles par 4 sont bissextiles, sauf les années qui sont divisibles par 100 mais pas par 400. Cette valeur ne correspond donc pas toujours au véritable nombre de secondes écoulées depuis l'époque, à cause des secondes intercalaires et parce que les horloges système ne sont pas forcément synchronisées avec une référence standard. Cependant elle reste cohérente au cours du temps. Consultez l'explication A.4.15 de POSIX.1-2008 pour plus de détails.
Sur Linux, un appel à time() où tloc vaut NULL ne peut pas échouer avec l'erreur EOVERFLOW, même sur des ABI où time_t est un entier 32 bits signé et où les tics de l'horloge atteignent ou dépassent 2**31 secondes (2038-01-19 03:14:08 UTC, en ignorant les secondes intercalaires). (POSIX.1 permet mais n'exige pas l'erreur EOVERFLOW si les secondes depuis Epoch ne tiennent pas dans time_t). Au contraire, le comportement sur Linux n'est pas défini quand l'heure du système dépasse la plage time_t. Les applications conçues pour fonctionner après 2038 devraient utiliser des ABI avec un time_t plus grand que 32 bits.

BOGUES

Les codes de retour d'erreur de cet appel système sont indistincts des retours lorsque l'appel réussit mais que le temps est de quelques secondes avant Epoch, donc la fonction enveloppe de la bibliothèque C ne positionne jamais errno à la fin de cet appel.
Le paramètre tloc est obsolète et devrait toujours être NULL dans du code nouveau. Quand tloc est NULL, l'appel ne peut pas échouer.

différences entre bibliothèque C et noyau

Sur certaines architectures, une implémentation de time() est fournie dans le vdso(7).

VOIR AUSSI

date(1), gettimeofday(2), ctime(3), ftime(3), time(7), vdso(7)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]>, David Prévot <[email protected]> et Jean-Philippe MENGUAL <[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à [email protected]

Recommended readings

Pages related to time you should read also: