Get the current time of a clock
#include <time.h> int clock_gettime( clockid_t clock_id, struct timespec * tp );
While the processor isn't in a power-saving mode, CLOCK_SOFTTIME behaves the same as CLOCK_REALTIME.
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The clock_gettime() function gets the current time of the clock specified by clock_id, and puts it into the buffer pointed to by tp.
/* * This program calculates the time required to * execute the program specified as its first argument. * The time is printed in seconds, on standard out. */ #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; }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
clock_getres(), clock_settime(), errno, timespec
Clocks, Timers, and Getting a Kick Every So Often chapter of Getting Started with QNX Neutrino