Provided by: manpages-pl-dev_0.6-2_all bug

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 itimerval *ovalue);

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       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 wykonywania  przez  system
              zlecenie procesu. W powiązaniu z ITIMER_VIRTUAL, ten czasomierz zwykle jest używany
              do  parametryzowania  czasu  używanego  przez  aplikację  zarówno   w   przestrzeni
              użytkownika, 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 aktualnym 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   wygenerowaniu.   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  zdarzenie.  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ł  poprzedniego przeterminowania zostanie dostarczony. Drugi sygnał w takiej sytuacji
       zostanie utracony.

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia  Manuali  i  może
       nie  być  aktualne.  W  razie  zauważenia  różnic  między  powyższym opisem a rzeczywistym
       zachowaniem opisywanego programu lub  funkcji,  prosimy  o  zapoznanie  się  z  oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 2 getitimer

       Prosimy  o  pomoc  w  aktualizacji stron man - więcej informacji można znaleźć pod adresem
       http://sourceforge.net/projects/manpages-pl/.