Mengapa waktu dilaporkan oleh waktu () terkadang 1 detik di belakang komponen detik dari timespec_get () dalam kode C?

Potongan kode berikut: struct timespec ts; for (int x = 0; x < 100000000; x++) { timespec_get(&ts, TIME_UTC); long cTime = (long) time(NULL); if (cTime != ts.tv_sec && ts.tv_nsec < 3000000) { printf("cTime: %ld\n", cTime); printf("ts.tv_sec: %ld\n", ts.tv_sec);...