НАЗВА

clock - визначає процесорний час, використаний програмою

ОГЛЯД

 **#include <time.h>** 

 **clock_t clock(void);** 

ОПИС

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

ПОВЕРНЕНІ ЗНАЧЕННЯ

Значення, що повертається, є використаним до даного моменту часом процесору типу clock_t; щоб отримати кількість використаних секунд, поділіть на CLOCKS_PER_SEC. Якщо процесорний час недоступний або його значення неможливо відпбразити, функція поверне значення (\fBclock_t\f)-1.

ВІДПОВІДНІСТЬ СТАНДАРТАМ

ANSI C. POSIX вимагає, щоб CLOCKS_PER_SEC дорівнювало 1000000, незалежно від дійсної частоти.

ПРИМІТКИ

Стандарт C дозволяє довільні значення напочатку програми; відніміть значення, повернене викликом clock() напочатку програми для того, щоб добитися максимальної портабельності.

Зауважте, що час може переводитись на початок, так, скажімо, на 32-бітних системах, де CLOCKS_PER_SEC дорівнює 1000000, ця функція поверне те саме значення, приблизно, кожні 72 хвилини.

На деяких інших втіленнях, значення, повернене clock(), також включає час дочірних процесів, чий статус отримано через wait() (або подібний виклик). Лінукс не включає час очікуваних дочірніх процесів у значення, повернене clock(). Функція times(), яка відверто повертає (окрему) інформацію про програму-викликача і її дочірні процеси, можливо підійде краще в цьому випадку.

ПРИКЛАД

#include<time.h>
#include<stdio.h>

int main(void)
{
    clock_t ticks1, ticks2;

    ticks1=clock();
    ticks2=ticks1;
    while((ticks2/CLOCKS_PER_SEC-ticks1/CLOCKS_PER_SEC)<1)
        ticks2=clock();

    printf("Took %ld ticks to wait one second.\n",ticks2-ticks1);
    printf("It should be the same as CLOCKS_PER_SEC which is %ld.\n",
            CLOCKS_PER_SEC);
    return 0;
}

ДИВІТЬСЯ ТАКОЖ

?getrusage(2), ?times(2)