Tôi đang cố gắng xác định mức độ chi tiết của bộ tính giờ trên hộp Linux của mình. Theo các trang người đàn ông cho clock_getres, tôi sẽ có thể sử dụng đoạn mã này:Sử dụng 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);
}
}
}
Tôi đang cố gắng để xây dựng như sau: gcc -o timertest timertest.c
này hoạt động tốt trên Solaris nhưng trên Linux tôi nhận được lỗi:
/tmp/ccuqfrCK.o: In function `main': timertest.c:(.text+0x49): undefined reference to `clock_getres' collect2: ld returned 1 exit status
tôi đã thử đi qua -lc để gcc, rõ ràng clock_getres được định nghĩa trong libc, nhưng nó làm cho không có sự khác biệt. Tôi phải thiếu một cái gì đó đơn giản ở đây - bất kỳ ý tưởng?
Cảm ơn,
Russ
Ngay cả trên Linux, trang manpage cho các trạng thái clock_getres "Liên kết với -lrt." Russ, bạn thật may mắn khi Linux được tha thứ như vậy. – ephemient