rtime(3) Library Functions Manual rtime(3) NOM rtime - Lire l'heure sur un serveur distant BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include int rtime(struct sockaddr_in *addrp, struct rpc_timeval *timep, struct rpc_timeval *timeout); DESCRIPTION Cette fonction utilise le protocole Time Serveur decrit dans la RFC 868 pour lire l'heure sur une machine distante. Le protocole Time Serveur donne l'heure en secondes ecoulees depuis le 1er janvier 1900 a 00:00:00 UTC, et cette fonction soustrait la constante necessaire pour convertir le resultat en secondes ecoulees depuis l'epoque, 1er janvier 1970 a 00:00:00 (UTC). Si timeout est non NULL, le port UDP/time (37) est utilise, sinon le port TCP/time (37) est utilise. VALEUR RENVOYEE Si elle reussit, cette fonction renvoie 0 et la valeur de temps 32 bits obtenue est stockee dans timep->tv_sec. En cas d'echec, elle renvoie -1 et errno est defini pour indiquer l'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 recus n'est pas 4. ETIMEDOUT Le delai indique en second argument a expire. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |rtime() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ NOTES Seul IPv4 est supporte. Certaines versions de in.timed supportent uniquement TCP. Essayez le programme d'exemple avec use_tcp definie a 1. BOGUES rtime() dans la glibc 2.2.5 et les precedentes ne fonctionne pas correctement sur les machines 64 bits. EXEMPLES Cet exemple demande que le port 37 soit ouvert et actif. Verifiez que l'entree time dans /etc/inetd.conf ne soit pas commentee. Le programme se connecte sur un hote nomme << linux >>. Utiliser << localhost >> ne fonctionne pas. Le resultat est l'heure locale de l'ordinateur << linux >>. #include #include #include #include #include #include #include static int use_tcp = 0; static const char servername[] = "linux"; int main(void) { int ret; time_t t; struct hostent *hent; struct rpc_timeval time1 = {0, 0}; struct rpc_timeval timeout = {1, 0}; struct sockaddr_in name; 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 { t = time1.tv_sec; printf("%s\n", ctime(&t)); } exit(EXIT_SUCCESS); } VOIR AUSSI ntpdate(1), inetd(8) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 rtime(3)