ADJTIME

Section : Manuel du programmeur Linux (3)
Mise à jour de la version anglaise : 26 juillet 2007
Index Menu principal  

NOM

adjtime - Ajuster le temps pour synchroniser l'horloge système  

SYNOPSIS

int adjtime(const struct timeval *delta, struct timeval *olddelta);

Exigences de macros de test de fonctionnalités pour la glibc (voir
feature_test_macros(7)) :

adjtime() :
_BSD_SOURCE
 

DESCRIPTION

La fonction adjtime() ajuste de manière graduelle l'horloge système (comme renvoyée par gettimeofday(2)). La quantité de temps par laquelle l'horloge doit être ajustée est spécifiée dans la structure pointée par delta. Cette structure a la forme suivante :

struct timeval {
    time_t      tv_sec;     /* secondes */
    suseconds_t tv_usec;    /* microsecondes */
};

Si la valeur d'ajustement dans delta est positive, l'horloge système est accélérée par un faible pourcentage (c'est-à-dire en ajoutant chaque seconde une petite quantité de temps à la valeur de l'horloge) jusqu'à ce que l'ajustement soit effectué. Si la valeur d'ajustement dans delta est négative, l'horloge est ralentie selon le même procédé.

Si un ajustement d'horloge d'un précédent appel à adjtime() est déjà en cours au moment d'un nouvel appel à adjtime() et si delta n'est pas NULL lors de ce dernier appel, l'ajustement précédent est arrêté mais la partie de l'ajustement déjà effectuée n'est pas annulée.

Si olddelta n'est pas NULL, le tampon sur lequel il pointe est utilisé pour renvoyer la quantité de temps restant de tout ajustement précédent qui n'a pas encore été effectué.  

VALEUR RENVOYÉE

Si elle réussit adjtime() renvoie 0. Si elle échoue, elle renvoie -1 et écrit errno contient le code d'erreur.  

ERREURS

EINVAL
La valeur d'ajustement dans delta est en dehors de l'intervalle autorisé.
EPERM
L'appelant n'a pas les privilèges suffisants pour ajuster le temps. Sous Linux, la capacité CAP_SYS_TIME est nécessaire.
 

CONFORMITÉ

BSD 4.3, System V.  

NOTES

L'ajustement réalisé par adjtime() sur l'horloge est exécuté de telle manière que l'horloge est toujours monotoniquement augmentée. L'utilisation de adjtime() pour ajuster le temps empêche les problèmes qui pourraient être provoqués pour certaines applications (par exemple, make(1)) par des sauts brutaux, positifs ou négatifs, dans le temps système.

adjtime() est conçue pour effectuer de petits ajustements sur le temps système. La plupart des systèmes impose une limite sur la valeur de l'ajustement que l'on peut spécifier dans delta. Dans l'implémentation de la glibc, delta doit être inférieur ou égal à (INT_MAX / 1000000 - 2) et supérieur ou égal à (INT_MIN / 1000000 + 2) (respectivement 2145 et -2145 secondes sur i386).  

BOGUES

Un bogue de longue date faisait que si delta valait NULL, aucune information valide sur l'ajustement en cours de l'horloge n'était renvoyée dans olddelta. (Dans cette circonstance, adjtime() devrait renvoyer l'ajustement en cours de l'horloge, sans la modifier.) Ce bogue a été corrigé sur les systèmes disposant de la glibc 2.8 ou suivantes et le noyau Linux 2.69.26 ou suivants.  

VOIR AUSSI

adjtimex(2), gettimeofday(2), time(7)  

TRADUCTION

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 4 août 2006 et révisée le 17 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 adjtime ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.

 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
BOGUES
VOIR AUSSI
TRADUCTION

Dernière mise à jour : 17 juillet 2008