溫馨提示×

linux epoch時間戳的原子操作

小樊
101
2024-08-27 00:11:02
欄目: 智能運維

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

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女