rtime(3) Library Functions Manual rtime(3) NUME rtime - obine ora de la o maina de la distana BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int rtime(struct sockaddr_in *addrp, struct rpc_timeval *timep, struct rpc_timeval *timeout); DESCRIERE Aceasta funcie utilizeaza protocolul Time Server Protocol (protocolul serverului de timp), aa cum este descris in RFC 868, pentru a obine ora de la o maina la distana. Protocolul serverului de timp ofera timpul in secunde de la 00:00:00 UTC, 1 ianuarie 1900, iar aceasta funcie scade constanta corespunzatoare pentru a converti rezultatul in secunde de la Epoca, 1970-01-01 00:00:00:00 +0000 (UTC). Atunci cand timeout este diferit de NULL, se utilizeaza soclul udp/time (portul 37). In caz contrar, se utilizeaza soclul tcp/time (portul 37). VALOAREA RETURNATA In caz de succes, se returneaza 0, iar valoarea de timp pe 32 de bii obinuta este stocata in timep->tv_sec. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE Pot aparea toate erorile pentru funciile de baza (sendto(2), poll(2), recvfrom(2), connect(2), read(2)). In plus: EIO Numarul de octei returnat nu este 4. ETIMEDOUT Timpul de ateptare definit in ,,timeout" a expirat. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |rtime() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ NOTE Doar protocolul IPv4 este acceptat. Unele versiuni in.timed accepta numai TCP. Incercai programul de exemplu cu use_tcp fixata la 1. ERORI rtime() in glibc 2.2.5 i versiunile anterioare nu funcioneaza corect pe mainile pe 64 de bii. EXEMPLE Acest exemplu necesita ca portul 37 sa fie activat i deschis. Putei verifica daca intrarea de timp din /etc/inetd.conf nu este comentata. Programul se conecteaza la un calculator numit ,,linux". Utilizarea ,,localhost" nu funcioneaza. Rezultatul este ora locala a calculatorului ,,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("eroare rtime"); else { t = time1.tv_sec; printf("%s\n", ctime(&t)); } exit(EXIT_SUCCESS); } CONSULTAI I ntpdate(1), inetd(8) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 rtime(3)