ADJTIME(3)

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

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

Exigences de macros de test de fonctionalité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(3)). 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é.

VALEUR RENVOYÉE
Si elle réussit adjtime() renvoie 0. Si elle échoue, elle renvoie -1 et écrit errno en conséquence.

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 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).

BOGUES
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.

VOIR AUSSI
adjtimex(2), gettimeofday(2), feature_test_macros(7), 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 22 décembre 2007.

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.