CLOCK(3) Podręcznik programisty Linuksa CLOCK(3)

clock - wyznaczanie czasu procesora

#include <time.h>
clock_t clock(void);

Funkcja clock() zwraca przybliżoną ilość czasu procesora wykorzystanego przez program.

Zwracana wartość to ilość czasu CPU wykorzystanego do tej pory w formacie clock_t. Aby otrzymać czas w sekundach, należy podzielić go przez CLOCKS_PER_SEC. Jeśli informacja o wykorzystanym czasie procesora jest niedostępna lub wartość tego czasu nie może zostać przedstawiona, zwracana jest wartość (clock_t) -1.

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs Atrybut Wartość
clock() Bezpieczeństwo wątkowe MT-Safe

POSIX.1-2001, POSIX.1-2008, C89, C99. XSI wymaga, aby CLOCKS_PER_SEC było równe 1000000, niezależnie od rzeczywistej rozdzielczości.

Standard C dopuszcza nieokreśloną wartość na początku programu. Aby zapewnić maksymalną przenośność, należy odjąć od wyniku funkcji wartość zwróconą przez clock() na początku programu.

Należy zauważyć, że zegar może się przekręcić. W systemach 32-bitowych, gdzie CLOCKS_PER_SEC wynosi 1000000, funkcja ta będzie zwracać tę samą wartość co około 72 minuty.

W niektórych innych implementacjach wartość zwracana przez clock() zawiera również czasy procesów potomnych, których kod zakończenia został odczytany za pomocą wait(2) (lub innego programu typu "wait"). Linux nie dołącza do wartości zwracanej clock() czasów procesów potomnych, na których zakończenie oczekiwano. Funkcja times(2), zwracająca (osobne) informacje o procesie macierzystym i o jego potomkach, może być bardziej pożądana.

W glibc 2.17 i wcześniejszych clock() był implementowany za pomocą times(2). Aby zwiększyć dokładność, od wersji glibc 2.18 jest implementowany za pomocą clock_gettime(2) (przy użyciu zegara CLOCK_PROCESS_CPUTIME_ID).

clock_gettime(2), getrusage(2), times(2)

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

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek <alpha@irc.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, 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 manpages-pl-list@lists.sourceforge.net.

15 września 2017 r. GNU