1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include "time_impl.h" #include <errno.h> #include "libc.h" struct tm *__localtime_r(const time_t *restrict t, struct tm *restrict tm) { __secs_to_zone(*t, 0, &tm->tm_isdst, &tm->__tm_gmtoff, 0, &tm->__tm_zone); if (__secs_to_tm((long long)*t - tm->__tm_gmtoff, tm) < 0) { errno = EINVAL; return 0; } return tm; } weak_alias(__localtime_r, localtime_r);