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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.