Provided by:
manpages-pl-dev_20060617-3_all 
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.