Sto provando a determinare la granularità dei timer sulla mia macchina Linux. Secondo le pagine man di clock_getres, dovrei essere in grado di utilizzare questo frammento:Uso di clock_getres - newbie Linux C
#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);
}
}
}
sto cercando di costruire in questo modo: gcc -o timertest timertest.c
Questa grande opera su Solaris ma su Linux ottengo l'errore:
/tmp/ccuqfrCK.o: In function `main': timertest.c:(.text+0x49): undefined reference to `clock_getres' collect2: ld returned 1 exit status
ho provato a passare -lc a gcc, a quanto pare clock_getres è definito in libc, ma non fa alcuna differenza. Devo mancare qualcosa di semplice qui - qualche idea?
Grazie,
Russ
Anche su Linux, la manpage per clock_getres afferma "Collega con -lrt." Russ, sei solo fortunato che Linux sia tanto permissivo quanto lo è. – ephemient