在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時間戳。