int adjtimex(struct timex *buf);
struct timex {
int modes; /* выбор режима */
long offset; /* смещение по времени (usec) */
long freq; /* частота смещения (scaled ppm) */
long maxerror; /* максимальная ошибка (usec) */
long esterror; /* ожидаемая ошибка (usec) */
int status; /* команда/состояние для часов */
long constant; /* временная константа pll */
long precision; /* точность часов (usec) (только чтение) */
long tolerance; /* clock frequency tolerance (ppm)
(read only) */
struct timeval time; /* текущее время (только чтение) */
long tick; /* usecs between clock ticks */
};
Поле modes определяет какие параметры, если это необходимо, устанавливаются. Значение поля может содержать комбинации битовых масок, значения которых следующие:
#define ADJ_OFFSET 0x0001 /* смещение времениtime offset */ #define ADJ_FREQUENCY 0x0002 /* частота смещения */ #define ADJ_MAXERROR 0x0004 /* максимальная ошибка времени */ #define ADJ_ESTERROR 0x0008 /* ожидаемая ошибка времени */ #define ADJ_STATUS 0x0010 /* состояние часов */ #define ADJ_TIMECONST 0x0020 /* временная константа pll */ #define ADJ_TICK 0x4000 /* значение тика */ #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
Обычные пользователи могут писать в
mode.
только ноль.
Только суперпользователь root может устанавливать любые параметры.
#define TIME_OK 0 /* часы синхронизированы */ #define TIME_INS 1 /* вставлено секундный прыжок */ #define TIME_DEL 2 /* удалён секундный прыжок */ #define TIME_OOP 3 /* выполняется секундный прыжок */ #define TIME_WAIT 4 /* секундный прыжок осуществлён */ #define TIME_BAD 5 /* часы не синхронизированы */
В случае неудачи, adjtimex возвращает -1 и устанавливает errno.
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |