Я пытаюсь определить гранулярность таймеров на моем компьютере с Linux. Согласно справочным страницам для clock_getres, я должен иметь возможность использовать этот фрагмент:
#include <time.h>
#include <stdio.h>
int main( int argc, char** argv )
{
clockid_t types[] = { CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID, (clockid_t) - 1 };
struct timespec spec;
int i = 0;
for ( i; types[i] != (clockid_t) - 1; i++ )
{
if ( clock_getres( types[i], &spec ) != 0 )
{
printf( "Timer %d not supported.\n", types[i] );
}
else
{
printf( "Timer: %d, Seconds: %ld Nanos: %ld\n", i, spec.tv_sec, spec.tv_nsec );
}
}
}
Я пытаюсь построить так:
gcc -o timertest timertest.c
Это прекрасно работает в Solaris, но в Linux я получаю сообщение об ошибке:
/tmp/ccuqfrCK.o: In function `main':
timertest.c:(.text+0x49): undefined reference to `clock_getres'
collect2: ld returned 1 exit status
Я пытался передать -lc в gcc, по-видимому, clock_getres определен в libc, но это не имеет значения. Я, должно быть, здесь упускаю что-то простое - есть идеи?
Спасибо
Russ