Provided by: manpages-pl-dev_4.13-4_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 5.10 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 są:  Robert  Luberda  <robert@debian.org>  i
       Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją.  Bliższe informacje o warunkach licencji można uzyskać
       zapoznając  się  z  GNU General Public License w wersji 3  lub  nowszej.   Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej manpages-pl-
       list@lists.sourceforge.net.

Linux                                          15 września 2017 r.                                      TIMES(2)