在Linux系统中,可以使用clock_gettime
函数获取当前的Unix时间戳(即从1970年1月1日00:00:00 UTC到现在的秒数)
#include#include int main() { struct timespec ts; clock_gettime(CLOCK_REALTIME, &ts); printf("Seconds: %ld\n", ts.tv_sec); printf("Nanoseconds: %ld\n", ts.tv_nsec); return 0; }
这个示例程序将打印当前的Unix时间戳(秒)和纳秒。请注意,clock_gettime
函数返回的是一个struct timespec
结构体,其中包含两个字段:tv_sec
表示秒数,tv_nsec
表示纳秒数。
如果你想要获取自1970年1月1日00:00:00 UTC以来的总纳秒数,可以将秒数和纳秒数相加:
long long total_nanoseconds = (long long)ts.tv_sec * 1000000000 + ts.tv_nsec; printf("Total nanoseconds: %lld\n", total_nanoseconds);
这样,你就可以得到一个原子操作的Linux epoch时间戳。