.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2006 by Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH adjtime 3 "2 мая 2024 г." "Linux man\-pages 6.8" .SH ИМЯ adjtime \- корректировка времени для синхронизации с системными часами .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBint adjtime(const struct timeval *\fP\fIdelta\fP\fB, struct timeval *\fP\fIolddelta\fP\fB);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \fBadjtime\fP(): .nf Начиная с glibc 2.19: _DEFAULT_SOURCE В версии glibc 2.19 и более ранних: _BSD_SOURCE .fi .SH ОПИСАНИЕ Функция \fBadjtime\fP() постепенно подстраивает системные часы (значение которых можно получить функцией \fBgettimeofday\fP(2)). Количество времени, на которое будут подстроены часы, указано в структуре, на которую указывает \fIdelta\fP. Данная структура имеет следующий формат: .P .in +4n .EX struct timeval { time_t tv_sec; /* секунды */ suseconds_t tv_usec; /* микросекунды */ }; .EE .in .P Если время подстройки в \fIdelta\fP положительно, то ход системных часов ускоряется на небольшой процент (то есть каждая секунда длится чуть дольше) до тех пор, пока подстройка не будет завершена. Если время подстройки в \fIdelta\fP отрицательно, то часы будут замедлены схожим способом. .P Если подстройка системных часов по \fBadjtime\fP() уже производится во время второго вызова \fBadjtime\fP(), и \fIdelta\fP второго вызова не равна NULL, то более ранняя подстройка останавливается, однако уже завершённая часть подстройки не отменяется. .P Если значение \fIolddelta\fP не равно NULL, то буфер, на который оно указывает, будет содержать количество оставшегося после предыдущей незавершенной подстройки времени. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении \fBadjtime\fP() возвращает 0. При ошибке возвращается \-1, \fIerrno\fP устанавливается в соответствующее значение. .SH ОШИБКИ .TP \fBEINVAL\fP Подстройка в \fIdelta\fP находится вне разрешённого диапазона. .TP \fBEPERM\fP Вызывающий не обладает нужными привилегиями для подстройки времени. В Linux для этого требуется мандат \fBCAP_SYS_TIME\fP. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBadjtime\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ None. .SH ИСТОРИЯ 4.3BSD, System V. .SH ПРИМЕЧАНИЯ The adjustment that \fBadjtime\fP() makes to the clock is carried out in such a manner that the clock is always monotonically increasing. Using \fBadjtime\fP() to adjust the time prevents the problems that could be caused for certain applications (e.g., \fBmake\fP(1)) by abrupt positive or negative jumps in the system time. .P Функция \fBadjtime\fP() предназначена для использования подстроек системных часов малыми значениями. В большинстве систем есть ограничение для времени подстройки, которое можно указывать в \fIdelta\fP. В реализации glibc значение \fIdelta\fP должно быть меньше либо равно (INT_MAX / 1000000 \- 2) и больше либо равно (INT_MIN / 1000000 + 2) (для i386 эти значения равны \-2145 и 2145 секунд, соответственно). .SH ОШИБКИ .\" http://sourceware.org/bugzilla/show_bug?id=2449 .\" http://bugzilla.kernel.org/show_bug.cgi?id=6761 .\" Thanks to the new adjtimex() ADJ_OFFSET_SS_READ flag Была застарелая ошибка, при который если \fIdelta\fP была определена как NULL, то информация по предыдущей подстройке в \fIolddelta\fP не возвращалась (в данном случае \fBadjtime\fP() должна возвращать последнюю подстройку часов без изменений). Эта ошибка была исправлена в системах с glibc 2.8 и выше и ядром Linux 2.6.26 и выше. .SH "СМОТРИТЕ ТАКЖЕ" \fBadjtimex\fP(2), \fBgettimeofday\fP(2), \fBtime\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал Dmitry Bolkhovskikh и Yuri Kozlov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .