#include <rpc/des_crypt.h> int rtime(struct sockaddr_in *addrp, struct rpc_timeval *timep, struct rpc_timeval *timeout);
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 l'Ère Unix, le 1er janvier 1970 à 00H00).
Si timeout n'est pas NULL, le port UDP/time (37) est utilisé, sinon le port TCP/time (37) est utilisé.
Certaines versions de in.timed supportent uniquement TCP. Essayez l'exemple précédent avec use_tcp valant 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>.
#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); }
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 21 juillet 1996 et révisée le 17 juillet 2008.
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 rtime ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Dernière mise à jour : 17 juillet 2008