Provided by: manpages-fr-dev_2.80.1-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  à  minuit, et cette fonction soustrait la constante
       nécessaire pour convertir le résultat en secondes  écoulées  depuis  le
       1er janvier 1970 à minuit, début des dates de l’ère Unix (epoch).

       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
       l’exemple précédent avec use_tcp fixé à 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 les glibc <= 2.2.5 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>

       int use_tcp = 0;
       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((char *) &name, 0, sizeof(name));
           sethostent(1);
           hent = gethostbyname(servername);
           memcpy((char *) &name.sin_addr, hent->h_addr, hent->h_length);

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

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       netdate(1), ntpdate(1), rdate(1), inetd(8)

COLOPHON

       Cette  page  fait  partie  de  la  publication 2.80 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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>    et    l’équipe   francophone   de
       traduction de Debian.

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

                                 4 avril 2003                         RTIME(3)