clock(3)

NAZWA
clock - wyznaczanie czasu procesora

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#include <time.h>

clock_t clock(void);

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

WARTOŚĆ ZWRACANA
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.

ATRYBUTY
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

WERSJE
XSI requires that CLOCKS_PER_SEC equals 1000000 independent of the actual resolution.

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.

STANDARDY
C11, POSIX.1-2008.

HISTORIA
POSIX.1-2001, C89.

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

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

ZOBACZ TAKŻE
clock_gettime(2), getrusage(2), times(2)

TŁUMACZENIE
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 (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.