int rtime(struct sockaddr_in *addrp,struct rpc_timeval *timep,struct rpc_timeval *timeout);
ОПИСАНИЕ
Эта функция использует протокол сервера времени (Time Server Protocol),
описанный в RFC 868, для получения времени с удаленной машины.
TSP выдает время в секундах, начиная с полуночи 1900-01-01,
и эта функция вычитает соответствующие константы для приведения
результата к секундам, начиная с полуночи 1970-01-01, для Unix epoch.
Когда
timeout
не равен NULL, используется сокет udp/time (порт 37).
Иначе используется сокет tcp/time (порт 37).
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
При нормальном завершении работы возвращается 0,
а полученное 32-битное значение времени хранится в
timep->tv_sec.
В случае ошибок возвращает -1 и переменная
errno
устанавливается соответственно ошибке.
НАЙДЕННЫЕ ОШИБКИ
Могут случиться любые из ошибок для низлежащих функций (sendto, poll,
recvfrom, connect, read). Кроме этого могут быть такие оишбки:
ETIMEDOUT
Истекло время ожидания, определенное таймером.
EIO
Число возвращенных байтов не равно 4.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Этот пример требует, чтобы порт 37 был включен и открыт.
Можно проверить, что запись времени внутри
/etc/inetd.conf
не закомментирована.
Программа подключается к компьютеру с именем 'linux'.
Использование 'localhost' не срабатывает.
Результатом является локальное время компьютера 'linux'.