Provided by: manpages-pl-dev_0.7-1_all bug

NAZWA

       times - pobiera czasy procesów

SKŁADNIA

       #include <sys/times.h>

       clock_t times(struct tms *buf);

OPIS

       times()  przechowuje  bieżące  czasy wykonywania procesu w struct tms, do której prowadzi buf. struct tms
       jest zdefiniowana w <sys/times.h> następująco:

           struct tms {
             clock_t tms_utime;  /* czas w przestrzeni użytkownika */
             clock_t tms_stime;  /* czas systemowy */
             clock_t tms_cutime; /* czas w przestrzeni użytkownika dla dzieci*/
             clock_t tms_cstime; /* czas systemowy dzieci */
           };

       Pole tms_utime zawiera czas CPU spędzony na wykonywaniu instrukcji procesu wywołującego tę funkcję.  Pole
       tms_stime  zawiera  czas  CPU  spędzony w systemie podczas wykonywania zadań zleconych przez proces. Pole
       tms_cutime zawiera sumę tms_utime i tms_cutime wartości dla wszystkich dzieci, na  które  proces  czekał.
       Pole  tms_cstime  zawiera  sumę  wartości  tms_stime  i tms_cstime dla wszystkich dzieci, na które proces
       czekał.

       Czas zakończonych procesów-dzieci (i ich potomków) jest dodawany w momencie, gdy wait(2)  lub  waitpid(2)
       zwrócą  ich  identyfikatory  procesu.  W szczególności nigdy nie zostaną policzone czasy wnuków, na które
       dzieci nie poczekały.

       Wszystkie raportowane czasy są wyrażone w tyknięciach zegara.

WARTOŚĆ ZWRACANA

       times() zwraca liczbę tyknięć zegara, które upłynęły od pewnego  wybranego  punktu  przeszłości.  Wartość
       zwracana  może  przekroczyć  dopuszczalny zakres typu clock_t. W razie błędu zwracane jest (clock_t) -1 i
       odpowiednio jest ustawiana wartość zmiennej errno.

BŁĘDY

       EFAULT tms wskazuje na pamięć poza przestrzenią adresową procesu.

ZGODNE Z

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

UWAGI

       Liczbę tyknięć zegara na sekundę można uzyskać, używając:

           sysconf(_SC_CLK_TCK);

       W standardzie POSIX-1996 symbol CLK_TCK (zdefiniowany w <time.h>) jest uznany za starzejący się.  Obecnie
       jest przestarzały.

       W  wersjach  Linuksa  przed  2.6.9,  jeżeli  obsługa  sygnału SIGCHLD jest ustawiona na SIG_IGN, to czasy
       zakończonych dzieci są automatycznie zawarte w polach  tms_cstime  i  tms_cutime,  mimo  że  POSIX.1-2001
       określa, że tak się powinno się zdarzyć tylko wtedy, gdy proces czeka na swoje dzieci za pomocą wywołania
       systemowego  wait(2).  To  niedostosowanie  do  standardu  jest  poprawione  w  Linuksie w wersji 2.6.9 i
       kolejnych.

       Pod Linuksem argument buf może mieć wartość NULL, w czego wyniku  times()  tylko  zwróci  wynik  funkcji.
       Jednakże  POSIX  nie  określa  takiego zachowania i większość innych implementacji uniksowych wymaga, aby
       parametr buf nie był NULL-em.

       Proszę zauważyć, że clock(3) także  zwraca  wartości  typu  clock_t,  które  są  wyrażone  w  jednostkach
       CLOCKS_PER_SEC, a nie w tyknięciach zegara, używanych przez times().

       Funkcja times() zwraca liczbę tyknięć zegara, które upłynęły od pewnego wybranego punktu przeszłości. Pod
       Linuksem  ów "pewien wybrany punkt w przyszłości" jest różny w różnych wersjach jądra systemu. W Linuksie
       2.4 i wcześniejszych tym punktem jest moment uruchomienia systemu. Od wersji 2.6 Linuksa tym punktem jest
       (2^32/HZ) - 300 sekund przed momentem uruchomienia systemu. Ta wariantywność pomiędzy wersjami  jądra  (i
       pomiędzy  różnymi  implementacjami  Uniksa)  połączona  z  faktem,  że  wartość zwracana może przekroczyć
       dopuszczalny zakres typu clock_t, oznacza, że przenośne aplikacje powinny unikać używania  tej  wartości.
       Aby zmierzyć upływ czasu, lepiej używać clock_gettime(2).

   Historia
       SVr1-3  zwraca  long,  a członkowie struktury są typu time_t, chociaż przechowują tyknięcia zegara, a nie
       sekundy od początku epoki. V7 używał typu long dla członków struktury, ponieważ nie  miał  jeszcze  wtedy
       typu time_t.

BŁĘDY

       Ograniczenie w konwencjach tego wywołania systemowego na niektórych architekturach systemowych (zwłaszcza
       i386)  oznacza,  że  w  Linuksie  2.6  istnieje niewielkie okno czasowe (41 sekund) zaraz po uruchomieniu
       systemu, w którym times() może zwrócić -1, niepoprawnie wskazując na wystąpienie błędu. Ten  sam  problem
       może wystąpić, kiedy wartość zwracana zostanie zawinięta, gdyż przekroczy maksymalną dopuszczalną wartość
       dla typu clock_t.

ZOBACZ TAKŻE

       time(1), getrusage(2), wait(2), clock(3), sysconf(3), time(7)

O STRONIE

       Angielska  wersja  tej strony pochodzi z wydania 4.07 projektu Linux man-pages. Opis projektu, informacje
       dotyczące  zgłaszania   błędów,   oraz   najnowszą   wersję   oryginału   można   znaleźć   pod   adresem
       https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Robert Luberda <robert@debian.org> i
       Michał Kułach <michal.kulach@gmail.com>.

       Polskie  tłumaczenie  jest  częścią  projektu  manpages-pl;  uwagi,  pomoc,  zgłaszanie błędów na stronie
       http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją  4.07 oryginału.

Linux                                              2016-03-15                                           TIMES(2)