Provided by: manpages-pl-dev_20060617-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 tikach zegara

WARTOŚĆ ZWRACANA

       times()  zwraca  liczbę  tyknięć  zegara,  które  upłynęły  od  pewnego
       wybranego  punktu  przeszłości.  Dla  Linuksa  2.4 i wcześniejszych tym
       punktem jest moment uruchomienia systemu. Od  wersji  2.6  Linuksa  tym
       punktem  jest  (2^32/HZ)  -  300  (tj. około 429 milionów) sekund przed
       momentem  uruchomienia  systemu.  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.

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 1003.1-2001
       określa, że tak się powinno się zdarzyć tylko wtedy, gdy  proces  czeka
       na  swoje  dzieci  wywołując  funkcję  wait().  To  niedostosowanie  do
       standardu jest poprawione w Linuksie 2.6.9 i następnych wersjach.

       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)  zwraca wartości typu clock_t, które są
       wyrażone nie w tyknięciach zegara, ale w CLOCKS_PER_SEC.

ZGODNE Z

       SVr4, SVID, POSIX, X/OPEN, 4.3BSD

UWAGI HISTORYCZNE

       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.

       W  starszych systemach liczba tyknięć zegara na sekundę jest podawana w
       zmiennej HZ.

ZOBACZ TAKŻE

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