Scroll to navigation

CLOCK(3) Руководство программиста Linux CLOCK(3)

ИМЯ

clock - вычисляет процессорное время

СИНТАКСИС

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

ОПИСАНИЕ

Функция clock() возвращает приблизительное процессорное время, использованное программой.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Возвращаемое значение — это время, затраченное процессором на выполнение программы, представленное типом clock_t. Чтобы узнать количество затраченных на выполнение секунд, разделите возвращенное значение на CLOCKS_PER_SEC. Если затраченное процессором время недоступно или если его значение не может быть определено, то функция возвращает значение (clock_t) -1.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
clock() Безвредность в нитях MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ

POSIX.1-2001, POSIX.1-2008, C89, C99. В XSI требуется, чтобы CLOCKS_PER_SEC было равно 1000000 вне зависимости от действительной точности.

ЗАМЕЧАНИЯ

Стандарт Си разрешает выдавать произвольные значения времени при старте программы; поэтому вычтите из возвращенного функцией clock() значения её значение при старте и используйте разницу для обеспечения максимальной переносимости.

Заметим, что время может превысить свое максимальное значение. В 32-битных системах, где CLOCKS_PER_SEC равно 1000000, функция clock() возвращает одно и то же значение примерно каждые 72 минуты.

В некоторых других реализациях значение, возвращаемое clock(), также включает в себя время всех дочерних процессов, чьи состояния были собраны через wait(2) (или другие системные вызовы типа wait). Linux не включает время ожидающих потомков в значение, возвращаемое clock(). Возможно, предпочтительнее использовать функцию times(2), явно возвращающую (отдельно) информацию о вызвавшем функцию и его дочерних процессах.

В glibc 2.17 и старее, функция clock() работает на основе times(2). Для повышения точности, начиная с glibc 2.18, она реализуется через clock_gettime(2) (используются часы CLOCK_PROCESS_CPUTIME_ID).

СМ. ТАКЖЕ

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

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

15 сентября 2017 г. GNU