1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include "time32.h" #include <time.h> #include <errno.h> #include <stdint.h> int __clock_gettime32(clockid_t clk, struct timespec32 *ts32) { struct timespec ts; int r = clock_gettime(clk, &ts); if (r) return r; if (ts.tv_sec < INT32_MIN || ts.tv_sec > INT32_MAX) { errno = EOVERFLOW; return -1; } ts32->tv_sec = ts.tv_sec; ts32->tv_nsec = ts.tv_nsec; return 0; }