Provided by: manpages-pl-dev_20060617-3_all bug

NAZWA

       getitimer, setitimer - pobranie i ustawienie wartoci czasomierza

SK/LADNIA

       #include <sys/time.h>

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

OPIS

       System zaopatruje kady  proces  w  trzy  czasomierze,  z  ktorych  kady
       odlicza  czas  si  w  innej  domenie  czasowej. Gdy uplynie czas wanoci
       ustawiony dla ktorego z czasomierzy, do procesu wysylany jest sygnal, a
       czasomierz jest (potencjalnie) restartowany.

       ITIMER_REAL
              odlicza  czas  rzeczywisty  i dostarcza SIGALRM po uplywie czasu
              wanoci.

       ITIMER_VIRTUAL
              odlicza czas wykonywania si procesu  i  dostarcza  SIGVTALRM  po
              uplywie czasu wanoci.

       ITIMER_PROF
              odlicza   zarowno  czas  wykonywania  si  procesu,  jak  i  czas
              wykonywania  przez  system  zlecenie  procesu.  W  powizaniu   z
              ITIMER_VIRTUAL,   ten   czasomierz   zwykle   jest   uywany   do
              parametryzowania  czasu  uywanego  przez  aplikacj   zarowno   w
              przestrzeni  uytkownika,  jak  i  jdra.  Po uplywie czasu wanoci
              dostarczany jest SIGPROF.

       Wartoci czasomierza s zdefiniowane za pomoc nastpujych struktur:
            struct itimerval {
                struct timeval it_interval; /* nastpna warto */
                struct timeval it_value;    /* obecna warto */
            };
            struct timeval {
                long tv_sec;                /* sekundy */
                long tv_usec;               /* mikrosekundy */
            };

       Funkcja getitimer(2) wypelnia struktur wskazywan przez value  aktualnym
       ustawieniem  czasomierza wskazywanego przez which (jeden z ITIMER_REAL,
       ITIMER_VIRTUAL lub ITIMER_PROF).  Do pola it_value jest  wpisywana  ilo
       czasu,  ktory  pozostal  czasomierzowi  lub  zero, jeli czasomierz jest
       wylczony.   Podobnie,   do    it_interval    jest    wpisywana    warto
       inicjalizacyjna.    Funkcja   setitimer(2)   ustawia   dla   wskazanego
       czasomierza wartoci zawarte w value.  Jeli ovalue  jest  niezerowe,  to
       jest tam zapisywana stara warto czasomierza.

       Czasomierz  odlicza od it_value do zera, generuje sygnal i inicjalizuje
       si na it_interval.  Czasomierz ustawiony na zero (it_value jest zerowe,
       lub  uplynl  czasu  wanoci  czasomierza,  a  it_interval  jest  zerowe)
       zatrzymuje si.

       Przy okrelaniu czasu dzialania czasomierza istotne s zarowno tv_sec jak
       i tv_usec.

       Wano  czasomierzy  nigdy  nie  uplywa  przed  zadanym czasem, natomiast
       dzieje si to o krotki,  staly  czas,  zaleny  od  rozdzielczoci  zegara
       systemowego  (obecnie  10ms),  poniej.  W  chwili  uplywu  czasu wanoci
       generowany jest sygnal, a czasomierz jest resetowany. Jeli czas  wanoci
       uplywa,   gdy   proces   jest   aktywny  (jest  to  zawsze  prawda  dla
       ITIMER_VIRT),   to   sygnal   zostanie   dostarczony   natychmiast   po
       wygenerowaniu.  W  przeciwnym  wypadku  dostarczenie  bdzie  oponione o
       krotki okres czasu, zaleny od obcienia systemu.

WARTO ZWRACANA

       Po pomylnym zakoczeniu zwracane jest zero. Po bldzie zwracane jest -1 i
       odpowiednio ustawiane errno.

B/LDY

       EFAULT value lub ovalue nie jest prawidlowym wskanikiem.

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

ZGODNE Z

       SVr4, 4.4BSD (Ta funkcja pierwotnie pojawila si w 4.2BSD).

ZOBACZ TAKE

       gettimeofday(2), sigaction(2), signal(2)

USTERKI

       Pod  Linuksem,  generowanie  i  dostarczanie  sygnalu   s   oddzielnymi
       zdarzeniami  i dla kadego sygnalu moe by tylko jedno zalegle zdarzenie.
       Zatem moliwe jest, e podczas patologicznie duego obcienia  czas  wanoci
       ITIMER_REAL moe uplyn wczeniej, ni sygnal poprzedniego przeterminowania
       zostanie dostarczony. Drugi sygnal w takiej sytuacji zostanie utracony.

INFORMACJE O T/LUMACZENIU

       Powysze tlumaczenie pochodzi z nieistniejcego ju  Projektu  Tlumaczenia
       Manuali  i  moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
       opisem a rzeczywistym zachowaniem  opisywanego  programu  lub  funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.