.\" Copyright 7/93 by Darren Senn .\" 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 .\" Translation (c) 1998 Przemek Borys .\" Last update: A. Krzysztofowicz , 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 .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/.