Linux.pl
Opcje wyszukiwania podręcznika man:
Lista stron man zaczynających się od znaku:
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   ALPHA   NUM   OTHER   ALL
GETITIMER(2)            Podręcznik programisty Linuksa            GETITIMER(2)

NAZWA
       getitimer, setitimer - pobranie i ustawienie wartości czasomierza

SKŁADNIA
       #include <sys/time.h>

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

OPIS
       System zaopatruje każdy proces w  trzy  czasomierze,  z  których  każdy
       odlicza  czas  się  w innej domenie czasowej. Gdy upłynie czas ważności
       ustawiony dla któregoś z czasomierzy, do procesu wysyłany jest  sygnał,
       a czasomierz jest (potencjalnie) restartowany.

       ITIMER_REAL
              odlicza  czas  rzeczywisty  i dostarcza SIGALRM po upływie czasu
              ważności.

       ITIMER_VIRTUAL
              odlicza czas wykonywania się procesu i  dostarcza  SIGVTALRM  po
              upływie czasu ważności.

       ITIMER_PROF
              odlicza zarówno czas wykonywania się procesu, jak i czas wykony-
              wania przez system zlecenie procesu. W powiązaniu z  ITIMER_VIR-
              TUAL,  ten  czasomierz  zwykle  jest używany do parametryzowania
              czasu używanego przez aplikację zarówno w przestrzeni  użytkown-
              ika,  jak  i  jądra.  Po upływie czasu ważności dostarczany jest
              SIGPROF.

       Wartości czasomierza są zdefiniowane za pomocą następujych struktur:
            struct itimerval {
                struct timeval it_interval; /* następna wartość */
                struct timeval it_value;    /* obecna wartość */
            };
            struct timeval {
                long tv_sec;                /* sekundy */
                long tv_usec;               /* mikrosekundy */
            };

       Funkcja getitimer(2) wypełnia strukturę wskazywaną przez value  aktual-
       nym   ustawieniem   czasomierza   wskazywanego  przez  which  (jeden  z
       ITIMER_REAL, ITIMER_VIRTUAL lub ITIMER_PROF).  Do  pola  it_value  jest
       wpisywana  ilość  czasu,  który  pozostał czasomierzowi lub zero, jeśli
       czasomierz jest wyłączony.  Podobnie,  do  it_interval  jest  wpisywana
       wartość  inicjalizacyjna.   Funkcja setitimer(2) ustawia dla wskazanego
       czasomierza wartości zawarte w value.  Jeśli ovalue jest niezerowe,  to
       jest tam zapisywana stara wartość czasomierza.

       Czasomierz  odlicza od it_value do zera, generuje sygnał i inicjalizuje
       się na  it_interval.   Czasomierz  ustawiony  na  zero  (it_value  jest
       zerowe,  lub  upłynął  czasu  ważności  czasomierza, a it_interval jest
       zerowe) zatrzymuje się.

       Przy określaniu czasu działania czasomierza istotne są  zarówno  tv_sec
       jak i tv_usec.

       Ważność  czasomierzy  nigdy  nie upływa przed zadanym czasem, natomiast
       dzieje się to o krótki, stały czas, zależny  od  rozdzielczości  zegara
       systemowego  (obecnie  10ms),  później.  W chwili upływu czasu ważności
       generowany jest  sygnał,  a  czasomierz  jest  resetowany.  Jeśli  czas
       ważności  upływa,  gdy  proces  jest aktywny (jest to zawsze prawda dla
       ITIMER_VIRT), to sygnał zostanie dostarczony natychmiast po wygenerowa-
       niu.  W przeciwnym wypadku dostarczenie będzie opóźnione o krótki okres
       czasu, zależny od obciążenia systemu.

WARTOŚĆ ZWRACANA
       Po pomyślnym zakończeniu zwracane jest zero. Po błędzie  zwracane  jest
       -1 i odpowiednio ustawiane errno.

BŁĘDY
       EFAULT value lub ovalue nie jest prawidłowym wskaźnikiem.

       EINVAL which   nie   jest   jednym   z   ITIMER_REAL,  ITIMER_VIRT  lub
              ITIMER_PROF.

ZGODNE Z
       SVr4, 4.4BSD (Ta funkcja pierwotnie pojawiła się w 4.2BSD).

ZOBACZ TAKŻE
       gettimeofday(2), sigaction(2), signal(2)

USTERKI
       Pod  Linuksem,  generowanie  i  dostarczanie  sygnału  są   oddzielnymi
       zdarzeniami  i dla każdego sygnału może być tylko jedno zaległe zdarze-
       nie. Zatem możliwe jest, że  podczas  patologicznie  dużego  obciążenia
       czas  ważności  ITIMER_REAL może upłynąć wcześniej, niż sygnał poprzed-
       niego przeterminowania zostanie  dostarczony.  Drugi  sygnał  w  takiej
       sytuacji zostanie utracony.

Linux 0.99.11                     1993-08-05                      GETITIMER(2)

Time taken: 0.00021 seconds


Created with the man page lookup class by Andrew Collington, php@amnuts.com