setitimer

GETITIMER(2)    Ð ÑководÑÑво пÑогÑаммиÑÑа Linux    GETITIMER(2)



ÐÐЯ
       getitimer, setitimer - полÑÑиÑÑ Ð¸Ð»Ð¸ ÑÑÑановиÑÑ
       знаÑение внÑÑÑеннего ÑаймеÑа

ÐÐÐÐÐ
       #include <sys/time.h>

       int getitimer(int which, struct itimerval *value);
       int setitimer(int which, const struct itimerval *value, struct
              itimerval *ovalue);

ÐÐÐСÐÐÐÐ
       СиÑÑема пÑедоÑÑавлÑÐµÑ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ ÑÑи
       внÑÑÑÐµÐ½Ð½Ð¸Ñ ÑаймеÑа, каждÑй из коÑоÑÑÑ
       ÑабоÑÐ°ÐµÑ Ð² оÑделÑном вÑеменном домене.
       Ðогда лÑбой из ÑÑÐ¸Ñ ÑаймеÑов иÑÑекаеÑ,
       пÑоÑеÑÑÑ, в коÑоÑом ÑÑнкÑиониÑовал даннÑй
       ÑÐ°Ð¹Ð¼ÐµÑ Ð¿Ð¾ÑÑлаеÑÑÑ Ñигнал и ÑаймеÑ
       (поÑенÑиалÑно) пеÑезапÑÑкаеÑÑÑ.

       ITIMER_REAL    ÑабоÑÐ°ÐµÑ Ð² ÑеалÑном вÑемени и по
                      иÑÑеÑении оÑпÑавлÑÐµÑ Ñигнал SIGALRM .

       ITIMER_VIRTUAL ÑабоÑÐ°ÐµÑ ÑолÑко, когда пÑоÑеÑÑ
                      вÑполнÑеÑÑÑ Ð¸ по иÑÑеÑении
                      оÑпÑавлÑÐµÑ Ñигнал SIGVTALRM .

       ITIMER_PROF    ÑабоÑÐ°ÐµÑ Ð¸ когда пÑоÑеÑÑ
                      вÑполнÑеÑÑÑ, и когда ÑиÑÑема
                      ÑабоÑÐ°ÐµÑ Ð² инÑеÑеÑÐ°Ñ Ð¿ÑоÑеÑÑа.
                      ÐапÑÑеннÑй ÑовмеÑÑно Ñ ITIMER_VIRTUAL,
                      даннÑй ÑÐ°Ð¹Ð¼ÐµÑ Ð¾Ð±ÑÑно иÑполÑзÑеÑÑÑ
                      Ð´Ð»Ñ Ð¿ÑоÑилиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñемени,
                      коÑоÑое пÑиложение пÑÐ¾Ð²Ð¾Ð´Ð¸Ñ Ð²
                      Ñежиме полÑзоваÑÐµÐ»Ñ Ð¸ в Ñежиме
                      ÑдÑа.  Ðо иÑÑеÑении оÑпÑавлÑеÑ
                      Ñигнал SIGPROF .

       ÐнаÑÐµÐ½Ð¸Ñ ÑаймеÑа задаÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑледÑÑÑиÑ
       ÑÑÑÑкÑÑÑ:
            struct itimerval {
                struct timeval it_interval; /* next value */
                struct timeval it_value;    /* current value */
            };
            struct timeval {
                long tv_sec;                /* seconds */
                long tv_usec;               /* microseconds */
            };

       ФнкÑÐ¸Ñ getitimer заполнÑÐµÑ ÑÑÑÑкÑÑÑÑ,
       пÑедоÑÑавлÑемÑÑ ÐºÐ°Ðº value ÑекÑÑими ÑÑÑановками
       ÑаймеÑа, коÑоÑÑй обознаÑаеÑÑÑ ÐºÐ°Ðº which (одно
       из знаÑений ITIMER_REAL, ITIMER_VIRTUAL, или ITIMER_PROF).
       ÐÐ»ÐµÐ¼ÐµÐ½Ñ it_value ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ðµ
       вÑемÑ, оÑÑавÑееÑÑ Ð½Ð° ÑаймеÑе или Ð½Ð¾Ð»Ñ ÐµÑли
       ÑÐ°Ð¹Ð¼ÐµÑ Ð·Ð°Ð¿ÑеÑаеÑÑÑ. ÐоÑожим обÑазом
       ÑÑÑанавливаеÑÑÑ it_interval Ð´Ð»Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑбÑоÑа.
       ФÑнкÑÐ¸Ñ setitimer ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑказаннÑй
       ÑÐ°Ð¹Ð¼ÐµÑ Ð² знаÑение, Ñказанное в value.  ÐÑли
       ovalue не нолÑ, Ñам бÑÐ´ÐµÑ ÑоÑÑанено ÑÑаÑое
       знаÑение ÑаймеÑа.

       ТаймеÑÑ ÑменÑÑаÑÑиеÑÑ Ð¾Ñ it_value до нÑлÑ,
       генеÑиÑÑÑÑ Ñигнал и ÑбÑаÑÑваÑÑÑÑ Ð² it_interval.
       ТаймеÑ, коÑоÑÑй ÑÑÑановлен в Ð½Ð¾Ð»Ñ (it_value
       ÑвлÑеÑÑÑ Ð½Ñлем или ÑÐ°Ð¹Ð¼ÐµÑ Ð¸ÑÑÑк и it_interval
       ÑвлÑеÑÑÑ Ð½ÑлÑм) оÑÑанавливаеÑÑÑ.

       Ðба знаÑÐµÐ½Ð¸Ñ tv_sec и tv_usec ÑвлÑÑÑÑÑ Ð²Ð°Ð¶Ð½Ñми пÑи
       опÑеделении длиÑелÑноÑÑи ÑабоÑÑ ÑаймеÑа.

       ТаймеÑÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не иÑÑекаÑÑ Ð´Ð¾
       заÑÑебованного вÑемени, напÑоÑив они
       немного запаздÑваÑÑ, в завиÑимоÑÑи Ð¾Ñ Ñага
       ÑиÑÑемного ÑаймеÑа (в наÑÑоÑÑий Ð¼Ð¾Ð¼ÐµÐ½Ñ 10
       миллиÑекÑнд). Ðо иÑÑеÑении бÑдеÑ
       ÑгенеÑиÑован Ñигнал и пÑоизойдÑÑ ÑбÑоÑ
       ÑаймеÑа. ÐÑли ÑÐ°Ð¹Ð¼ÐµÑ Ð¸ÑÑÐµÐºÐ°ÐµÑ Ð² Ð¼Ð¾Ð¼ÐµÐ½Ñ ÐºÐ¾Ð³Ð´Ð°
       пÑоÑеÑÑ Ð°ÐºÑивен (ÑÑо вÑегда Ñак Ð´Ð»Ñ ITIMER_VIRT),
       Ñо Ñигнал бÑÐ´ÐµÑ Ð´Ð¾ÑÑавлен немедленно
       поÑле генеÑаÑии. РпÑоÑивном ÑлÑÑае,
       доÑÑавка бÑÐ´ÐµÑ Ð¾Ñложена на неболÑÑое вÑемÑ,
       коÑоÑое завиÑÐ¸Ñ Ð¾Ñ ÑÑепени загÑÑзки ÑиÑÑемÑ.

ÐÐÐÐÐ ÐЩÐÐÐÐÐ ÐÐÐЧÐÐÐÐ
       Ð ÑлÑÑае ÑÑпеÑа, возвÑаÑаеÑÑÑ Ð½Ð¾Ð»Ñ. Ð ÑлÑÑае
       оÑибки, возвÑаÑаеÑÑÑ -1 и знаÑение errno
       ÑÑÑанавливаеÑÑÑ ÑооÑвеÑÑÑвÑÑÑим обÑазом.

ÐШÐÐÐÐ
       EFAULT value или ovalue не ÑвлÑÑÑÑÑ Ð¿ÑавилÑнÑми
              ÑказаÑелÑми.

       EINVAL which не ÑвлÑеÑÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из знаÑений
              ITIMER_REAL, ITIMER_VIRT, или ITIMER_PROF.

СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       SVr4, 4.4BSD (ÐаннÑй вÑзов поÑвилÑÑ ÑпеÑва в 4.2BSD).

СÐÐТРРТÐÐÐÐ
       gettimeofday(2), sigaction(2), signal(2)

ÐÐÐÐ
       Ðод Linux, генеÑаÑÐ¸Ñ Ð¸ доÑÑавка Ñигнала
       ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ñ Ð¸ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑÐ¸Ð³Ð½Ð°Ð»Ñ ÑазÑеÑаеÑÑÑ
       генеÑиÑоваÑÑ ÑолÑко один недоÑÑавленнÑй
       Ñигнал. Таким обÑазом, полÑÑаеÑÑÑ, ÑÑо пÑи
       оÑÐµÐ½Ñ ÑилÑной загÑÑзке ÑиÑÑемÑ, ITIMER_REAL ÑаймеÑ
       бÑÐ´ÐµÑ Ð¸ÑÑекаÑÑ Ð¿ÐµÑед Ñем как бÑÐ´ÐµÑ Ð´Ð¾ÑÑавлен
       Ñигнал Ð¾Ñ Ð¿ÑедÑдÑÑего иÑÑÐµÐºÐ°Ð½Ð¸Ñ ÑаймеÑа.
       ÐÑоÑой Ñигнал в ÑÑом ÑлÑÑае бÑÐ´ÐµÑ Ð¿Ð¾ÑеÑÑн.

ÐÐÐ ÐÐÐÐ
       ÐеÑевÑл Ñ Ð°Ð½Ð³Ð»Ð¸Ð¹Ñкого ÐикÑÐ¾Ñ ÐиÑлобоков
       <corochoone@perm.ru> 2004



Linux 0.99.11                     1993-08-05                      GETITIMER(2)