1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#include <time.h> #include <limits.h> clock_t clock() { struct timespec ts; if (__clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts)) return -1; if (ts.tv_sec > LONG_MAX/1000000 || ts.tv_nsec/1000 > LONG_MAX-1000000*ts.tv_sec) return -1; return ts.tv_sec*1000000 + ts.tv_nsec/1000; }