clock_getres()

Get the resolution of the clock

Synopsis:

#include <time.h>

int clock_getres( clockid_t clock_id, 
                  struct timespec * res );

Arguments:

clock_id
The ID of the clock whose resolution you want to get; one of:
res
A pointer to a timespec structure in which clock_getres() can store the resolution. The function sets the tv_sec member to 0, and the tv_nsec member to be the resolution of the clock, in nanoseconds.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The clock_getres() function gets the resolution of the clock specified by clock_id and puts it into the buffer pointed to by res.

Returns:

0
Success
-1
An error occurred (errno is set).

Errors:

EFAULT
A fault occurred trying to access the buffers provided.
EINVAL
Invalid clock_id.

Examples:

/*
 * This program prints out the clock resolution.
 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main( void )
  {
    struct timespec res;

    if ( clock_getres( CLOCK_REALTIME, &res) == -1 ) {
      perror( "clock get resolution" );
      return EXIT_FAILURE;
    }
    printf( "Resolution is %ld micro seconds.\n",
          res.tv_nsec / 1000 );
    return EXIT_SUCCESS;
  }

Classification:

POSIX 1003.1 TMR

Safety:
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

clock_gettime(), clock_settime(), ClockPeriod(), timespec

Clocks, Timers, and Getting a Kick Every So Often chapter of Getting Started with QNX Neutrino