Linux |
CentOS 5.3 |
|
adjtime(3) |
adjtime − Corriger le temps pour synchroniser l’horloge système. |
#define _BSD_SOURCE int adjtime(const struct timeval *delta, struct timeval *olddelta); |
La fonction adjtime() ajuste de manière graduelle l’horloge système (comme renvoyée par gettimeofday()). 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 petit 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 de manière similaire. 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 pour le 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é. |
L’ajustement que adjtime() réalise sur l’horloge est mis à exécution 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 x86). |
Si elle réussit adjtime() renvoie 0. Si elle échoue, elle renvoie −1 et écrit errno en conséquence. |
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. |
4.3BSD, Système V. |
Actuellement, si delta vaut NULL, aucune information valide sur l’ajustement en cours de l’horloge n’est renvoyé dans olddelta. (Dans cette circonstance, adjtime() devrait renvoyer l’ajustement en cours de l’horloge, sans la modifier.) Ceci est le résultat d’une limitation du noyau. |
adjtimex(2), gettimeofday(2), time(7) |
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 11 août 2006. 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. |
adjtime(3) |