Provided by: manpages-pl-dev_4.21.0-2_all bug

NAZWA

       times - pobiera czasy procesów

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

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()   returns  the number of clock ticks that have elapsed since an arbitrary point in the past.  The
       return value may overflow the possible range of type clock_t.  On error, (clock_t) -1  is  returned,  and
       errno is set to indicate the error.

BŁĘDY

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

STANDARDY

       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.

       Before Linux 2.6.9, if the disposition of SIGCHLD is  set  to  SIG_IGN,  then  the  times  of  terminated
       children  are  automatically included in the tms_cstime and tms_cutime fields, although POSIX.1-2001 says
       that this should happen only if the calling process wait(2)s on its  children.   This  nonconformance  is
       rectified in Linux 2.6.9 and later.

       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)

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 man-pages 6.03                            10 lutego 2023 r.                                       times(2)