time - donner l'heure en secondes
Bibliothèque C standard (
libc,
-lc)
#include <time.h>
time_t time(time_t *_Nullable tloc);
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.
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.
- 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.
SVr4, 4.3BSD, C99, POSIX.1-2001. POSIX ne précise pas de condition
d'erreur.
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.
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.
Sur certaines architectures, une implémentation de
time() est
fournie dans le
vdso(7).
date(1),
gettimeofday(2),
ctime(3),
ftime(3),
time(7),
vdso(7)
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]