The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

adjtimex (2)
  • >> adjtimex (2) ( Русские man: Системные вызовы )
  • adjtimex (2) ( Linux man: Системные вызовы )
  • adjtimex (8) ( Linux man: Команды системного администрирования )
  •  

    ИМЯ

    adjtimex - тонкая настройка часов в ядре  

    ОБЗОР

    #include <sys/timex.h>

    int adjtimex(struct timex *buf);  

    ОПИСАНИЕ

    Linux использует для подстройки часов алгоритм David L. Mills (см. RFC 1305). Системный вызов adjtimex читает и (необязательно) устанавливает параметры подстройки для этого алгоритма. В качестве аргумента используется указатель на структуру timex , по значениям в полях которой осуществяется обновление параметров ядра и в этой же структуре происходит возврат текущих значений параметров ядра. Данная структура описана так:

    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 может устанавливать любые параметры.
     

    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

    В случае успеха, adjtimex возвращает состояние часов:

    #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.  

    ОШИБКИ

    EFAULT
    buf не является указателем на доступную для записи область памяти.
    EPERM
    buf.mode не ноль, а пользователь не является суперпользователем.
    EINVAL
    Попытка установить buf.offset в значение, выходящее за диапазон от -131071 до +131071, или установить buf.status в значение отличное от перечисленных выше, или установить buf.tick в значение за пределами диапазона от 900000/HZ до 1100000/HZ, где HZ - это частота прерываний системного таймера.
     

    СОВМЕСТИМОСТЬ СО СТАНДАРТАМИ

    adjtimex - это специфичный для Linux вызов и он не должен использоваться в программах, которые пишуться как переносимые. Существует похожий, но более общий для разных Unix систем вызов adjtime в SVr4.  

    СМОТРИ ТАКЖЕ

    settimeofday(2)  

    ПЕРЕВОД

    Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003


     

    Index

    ИМЯ
    ОБЗОР
    ОПИСАНИЕ
    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
    ОШИБКИ
    СОВМЕСТИМОСТЬ СО СТАНДАРТАМИ
    СМОТРИ ТАКЖЕ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру