.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2003, Walter Harms .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH rtime 3 "8 февраля 2026 г." "Linux man\-pages 6.18" .SH НАИМЕНОВАНИЕ rtime \- получение времени с удалённого узла .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP,\ \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBint rtime(struct sockaddr_in *\fP\fIaddrp\fP\fB, struct rpc_timeval *\fP\fItimep\fP\fB,\fP \fB struct rpc_timeval *\fP\fItimeout\fP\fB);\fP .fi .SH ОПИСАНИЕ Для получения времени с удалённого компьютера функция использует протокол Time Server Protocol, описанный в RFC\ 868. .P Time Server Protocol возвращает время в секундах начиная с 1 января 1900 года 00:00:00 UTC. Данная функция самостоятельно вычитает подходящую константу для того, чтобы преобразовать результат в секундах от начала Эпохи \(em 1970\-01\-01 00:00:00 +0000 (UTC). .P Если \fItimeout\fP не равно NULL, то будет использоваться сокет udp/time (порт 37), иначе \(em сокет tcp/time (порт 37). .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, 0 is returned, and the obtained 32\-bit time value is stored in \fItimep\->tv_sec\fP. In case of error \-1 is returned, and \fIerrno\fP is set to indicate the error. .SH ОШИБКИ Могут возникнуть все ошибки задействованных в работе функций (\fBsendto\fP(2), \fBpoll\fP(2), \fBrecvfrom\fP(2), \fBconnect\fP(2), \fBread\fP(2)), а также: .TP \fBEIO\fP Количество возвращённых байт не равно 4. .TP \fBETIMEDOUT\fP Время ожидания, указанное в таймауте, превышено. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBrtime\fP() T} Безвредность в нитях MT\-Safe .TE .SH ПРИМЕЧАНИЯ Поддерживается только IPv4. .P .\" .P .\" Libc5 uses the prototype .\" .P .\" .nf .\" int rtime(struct sockaddr_in *, struct timeval *, struct timeval *); .\" .fi .\" .P .\" and requires .\" .I .\" instead of .\" .IR . Некоторые версии \fIin.timed\fP поддерживают только TCP. Попробуйте пример программы с установленной в 1 значением \fIuse_tcp\fP. .SH "ПРОГРАММНЫЕ ОШИБКИ" \fBrtime\fP() в glibc 2.2.5 и ниже на 64\-битных компьютерах работает некорректно. .SH ПРИМЕРЫ Для этого примера требуется поднятие и открытие порта 37. Вы можете проверить это, убедившись в том, что в файле \fI/etc/inetd.conf\fP запись time раскомментирована. .P Программа подключается к компьютеру с именем «linux». Использование «localhost» не сработает. В качестве результата будет возвращено локальное время компьютера «linux». .P .\" SRC BEGIN (rtime.c) .EX #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\[rs]n", ctime(&t)); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "СМОТРИТЕ ТАКЖЕ" .\" .BR netdate (1), .\" .BR rdate (1), \fBntpdate\fP(1), \fBinetd\fP(8) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) aereiae , Azamat Hackimov , Dmitriy S. Seregin , Katrin Kutepova , Lockal , Yuri Kozlov , Баринов Владимир и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT debian-l10n-russian@lists.debian.org списка рассылки русских переводчиков .ME .