Получить текущее значение часов
#include <time.h>int clock_gettime( clockid_t clock_id,struct timespec *tp );
CLOCK_SOFTTIME
для сна, не "разбудит" процессор, когда приложение должно проснуться. Это позволит процессору перейти в режим энергосбережения. Когда процессор не находится в режиме энергосбережения таймеры типа CLOCK_SOFTTIME
аналогичны типу CLOCK_REALTIME
. CLOCK_PROCESS_CPUTIME_ID
и CLOCK_THREAD_CPUTIME_ID
являются специализированными значениями для получения информации о времени активности вызывающего процесса или потока соответственно. libc
Функция clock_gettime() получает текущее значение часов типа clock_id и записывает его в структуру tp.
/** Эта программа вычисляет время, затраченное на* выполнение программы, определенной в первом аргументе.* Время выводится в секундах в стандартный поток вывода.*/#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <time.h>#define BILLION 1000000000L;int main( int argc, char** argv ){struct timespec start, stop;double accum;if ( clock_gettime( CLOCK_REALTIME, &start ) == -1 ){perror( "clock gettime" );return (EXIT_FAILURE);}system( argv[1] );if ( clock_gettime( CLOCK_REALTIME, &stop ) == -1 ){perror( "clock gettime" );return (EXIT_FAILURE);}accum = ( stop.tv_sec - start.tv_sec ) +(double)( stop.tv_nsec - start.tv_nsec ) / (double)BILLION;printf( "%lf\n", accum );return (EXIT_SUCCESS);}
POSIX 1003.1 Timers
clock_getres(), clock_settime(), errno, struct timespec
Предыдущий раздел: Описание API системной библиотеки