在Linux系统中,可以使用clock_gettime
函数获取当前的Unix时间戳(即从1970年1月1日00:00:00 UTC到现在的秒数)
#include<stdio.h>
#include <time.h>
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时间戳。