clock - вычисляет
процессорное
время
Standard C library (
libc,
-lc)
#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, C99. XSI requires that
CLOCKS_PER_SEC equals
1000000 independent of the actual resolution.
Стандарт
Си
разрешает
выдавать
произвольные
значения
времени
при старте
программы;
поэтому
вычтите из
возвращенного
функцией
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)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitriy S. Seregin
<
[email protected]>, Dmitry Bolkhovskikh <
[email protected]>,
Katrin Kutepova <
[email protected]>, Yuri Kozlov
<
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]