Provided by: manpages-pl-dev_0.5-1_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/.

Linux 0.99.11                                      1993-08-05                                       GETITIMER(2)