Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       rtime - Lire l'heure sur un serveur distant

SYNOPSIS

       #include <rpc/des_crypt.h>

       int rtime(struct sockaddr_in *addrp, struct rpc_timeval *timep,
                 struct rpc_timeval *timeout);

DESCRIPTION

       Cette fonction utilise le protocole Time Serveur décrit dans la RFC 868 pour lire l'heure sur une machine
       distante.

       Le  protocole  Time Serveur donne l'heure en secondes écoulées depuis le 1er janvier 1900 à 00:00:00 UTC,
       et cette fonction soustrait la constante nécessaire pour  convertir  le  résultat  en  secondes  écoulées
       depuis l'époque, 1er janvier 1970 à 00:00:00 (UTC).

       Si timeout est non NULL, le port UDP/time (37) est utilisé, sinon le port TCP/time (37) est utilisé.

VALEUR RENVOYÉE

       Si elle réussit, cette fonction renvoie zéro et la valeur 32 bits obtenue est stockée dans timep->tv_sec.
       En cas d'échec, elle renvoie -1 et errno contient le code d'erreur.

ERREURS

       Toutes  les  erreurs  pour  les  fonctions  sous-jacentes  (sendto(2),  poll(2), recvfrom(2), connect(2),
       read(2)) peuvent se produire, avec en outre :

       EIO    Le nombre d'octets reçus n'est pas 4.

       ETIMEDOUT
              Le délai indiqué en second argument a expiré.

NOTES

       Seul IPv4 est supporté.

       Certaines versions de in.timed supportent uniquement TCP. Essayez le  programme  d'exemple  avec  use_tcp
       définie à 1.

       La libc5 utilise le prototype

           int rtime(struct sockaddr_in *, struct timeval *, struct timeval *);

       et requiert <sys/time.h> à la place de <rpc/auth_des.h>.

BOGUES

       rtime() dans la glibc 2.2.5 et les précédentes ne fonctionne pas correctement sur les machines 64 bits.

EXEMPLE

       Cet  exemple demande que le port 37 soit ouvert et actif. Vérifiez que l'entrée time dans /etc/inetd.conf
       ne soit pas commentée.

       Le programme se connecte sur un hôte nommé  « linux ».  Utiliser  « localhost »  ne  fonctionne  pas.  Le
       résultat est l'heure locale de l'ordinateur « linux ».

       #include <stdio.h>
       #include <stdlib.h>
       #include <errno.h>
       #include <string.h>
       #include <time.h>
       #include <rpc/auth_des.h>
       #include <netdb.h>

       static int use_tcp = 0;
       static char *servername = "linux";

       int
       main(void)
       {
           struct sockaddr_in name;
           struct rpc_timeval time1 = {0,0};
           struct rpc_timeval timeout = {1,0};
           struct hostent *hent;
           int ret;

           memset(&name, 0, sizeof(name));
           sethostent(1);
           hent = gethostbyname(servername);
           memcpy(&name.sin_addr, hent->h_addr, hent->h_length);

           ret = rtime(&name, &time1, use_tcp ? NULL : &timeout);
           if (ret < 0)
               perror("rtime error");
           else {
               time_t t = time1.tv_sec;
               printf("%s\n", ctime(&t));
           }

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       ntpdate(1), inetd(8)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions     pour     signaler     des     anomalies    peuvent    être    trouvées    à    l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Nicolas  François  et  l'équipe  francophone de traduction de
       Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org>  ou  par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

GNU                                              5 janvier 2014                                         RTIME(3)