.\" Copyright 7/93 by Darren Senn <sinster@scintilla.santa-clara.ca.us>
.\" Based on a similar page Copyright 1992 by Rick Faith
.\" May be freely distributed
.\" Modified Tue Oct 22 00:22:35 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
.\" Translation (c) 1998 Przemek Borys <pborys@dione.ids.pl>
.\" Last update: A. Krzysztofowicz <ankry@mif.pg.gda.pl>, Mar 2002,
.\"              manpages 1.48
.\"
.TH GETITIMER 2 1993-08-05 "Linux 0.99.11" "Podręcznik programisty Linuksa"
.SH NAZWA
getitimer, setitimer \- pobranie i ustawienie wartości czasomierza
.SH SKŁADNIA
.PD 0
.HP
.B #include <sys/time.h>
.sp
.HP
.B int getitimer(int
.IB which ,
.B struct itimerval
.BI * value );
.HP
.B int setitimer(int
.IB which ,
.B const struct itimerval
.BI * value ,
.B struct itimerval
.BI * ovalue );
.PD
.SH OPIS
\fI Uwaga! To tłumaczenie może być nieaktualne!\fP
.PP
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.
.TP
.B ITIMER_REAL
odlicza czas rzeczywisty i dostarcza
.B SIGALRM
po upływie czasu ważności.
.TP
.B ITIMER_VIRTUAL
odlicza czas wykonywania się procesu i dostarcza
.B SIGVTALRM
po upływie czasu ważności.
.TP
.B ITIMER_PROF
odlicza zarówno czas wykonywania się procesu, jak i czas wykonywania przez
system zlecenie procesu. W powiązaniu z
.BR 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
.BR SIGPROF .
.LP
Wartości czasomierza są zdefiniowane za pomocą następujych struktur:
.PD 0
.RS .5i
.nf
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 */
};
.fi
.RE
.PD
.LP
Funkcja
.BR getitimer (2)
wypełnia strukturę wskazywaną przez
.I value
aktualnym ustawieniem czasomierza wskazywanego przez
.I which
(jeden z
.BR ITIMER_REAL ,
.B ITIMER_VIRTUAL
lub
.BR ITIMER_PROF ).
Do pola
.B it_value
jest wpisywana ilość czasu, który pozostał czasomierzowi lub zero, jeśli
czasomierz jest wyłączony. Podobnie, do
.B it_interval
jest wpisywana wartość inicjalizacyjna.
Funkcja
.BR setitimer (2)
ustawia dla wskazanego czasomierza wartości zawarte w
.IR value .
Jeśli
.I ovalue
jest niezerowe, to jest tam zapisywana stara wartość czasomierza.
.LP
Czasomierz odlicza od
.I it_value
do zera, generuje sygnał i inicjalizuje się na
.IR it_interval .
Czasomierz ustawiony na zero
.RI ( it_value
jest zerowe, lub upłynął czasu ważności czasomierza, a
.I it_interval
jest zerowe) zatrzymuje się.
.LP
Przy określaniu czasu działania czasomierza istotne są zarówno
.I tv_sec
jak i
.IR tv_usec .
.LP
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
.BR 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.
.LP
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest \-1
i odpowiednio ustawiane
.IR errno .
.SH BŁĘDY
.TP
.B EFAULT
.I value
lub
.I ovalue
nie jest prawidłowym wskaźnikiem.
.TP
.B EINVAL
.I which
nie jest jednym z
.BR ITIMER_REAL ,
.B ITIMER_VIRT
lub
.BR ITIMER_PROF .
.SH "ZGODNE Z"
SVr4, 4.4BSD (Ta funkcja pierwotnie pojawiła się w 4.2BSD).
.SH "ZOBACZ TAKŻE"
.BR gettimeofday (2),
.BR sigaction (2),
.BR signal (2)
.SH 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
.B ITIMER_REAL
może upłynąć wcześniej, niż sygnał poprzedniego przeterminowania zostanie
dostarczony. Drugi sygnał w takiej sytuacji zostanie utracony.
.SH "INFORMACJE O TŁUMACZENIU"
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i 
\fImoże nie być aktualne\fR. 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:
.IP
man \-\-locale=C 2 getitimer
.PP
Prosimy o pomoc w aktualizacji stron man \- więcej informacji można znaleźć pod
adresem http://sourceforge.net/projects/manpages\-pl/.
