plucky (2) times.2.gz

Provided by: manpages-pl-dev_4.25.1-1_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()  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 ustawiane errno, wskazując błąd.

BŁĘDY

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

WERSJE

       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.

STANDARDY

       POSIX.1-2008.

HISTORIA

       POSIX.1-2001, SVr4, 4.3BSD.

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

       Przed Linuksem 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.

       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).

       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.

UWAGI

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

           sysconf(_SC_CLK_TCK);

       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().

USTERKI

       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⟩.