https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92616
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
gettimeofday agrees with clock_gettime(CLOCK_REALTIME):
void dumpNow() {
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
auto const now = time(nullptr);
struct timeval tv;
gettimeofday(&tv, NULL);
tm nowTm;
localtime_r(&ts.tv_sec, &nowTm);
std::cout << "Now (clock_gettime) time is " << ts.tv_sec << std::setw(9) <<
std::setfill('0') << ts.tv_nsec
<< "\n=>" << ts.tv_sec << "(time_t)\n=>" << nowTm.tm_hour
<< ":" << nowTm.tm_min << ":" << nowTm.tm_sec << std::endl;
localtime_r(&now, &nowTm);
std::cout << "Now (time(nullptr)) time is " << now << "(time_t)\n=>"
<< nowTm.tm_hour << ":" << nowTm.tm_min << ":" << nowTm.tm_sec
<< std::endl;
localtime_r(&tv.tv_sec, &nowTm);
std::cout << "Now (gettimeofday) time is " << tv.tv_sec << std::setw(6) <<
std::setfill('0') << tv.tv_usec << "\n=>" << tv.tv_sec << "(time_t)\n=>"
<< nowTm.tm_hour << ":" << nowTm.tm_min << ":" << nowTm.tm_sec
<< std::endl;
}
Now (clock_gettime) time is 1574344361836948044
=>1574344361(time_t)
=>13:52:41
Now (time(nullptr)) time is 1574344361(time_t)
=>13:52:41
Now (gettimeofday) time is 1574344361836949
=>1574344361(time_t)
=>13:52:41
Now (clock_gettime) time is 1574344363000108423
=>1574344363(time_t)
=>13:52:43
Now (time(nullptr)) time is 1574344362(time_t)
=>13:52:42
Now (gettimeofday) time is 1574344363000108
=>1574344363(time_t)
=>13:52:43