首页 > 解决方案 > 在 Linux 中获取自 1984 年 1 月 1 日午夜以来的绝对时间

问题描述

我正在 Linux 上编写一个具有 CAN 功能的 C 程序。我需要以以下 TIME 对象格式获取自 1984 年 1 月 1 日午夜以来的绝对时间。我应该使用什么功能?

代码

typedef struct
{
    UNSIGNED32     ms; // upper 4 bits are reserved
    UNSIGNED16     days;
} TIME_OF_DAY;

标签: clinuxstructtimestamp

解决方案


通常的 Unix/Linux 时间纪元是 1970 年 1 月 1 日,因此您可以使用任何常用函数,最有可能clock_gettime()使用CLOCK_REALTIME. 然后只需减去 1970 和 1984 之间的时间量(可以嵌入代码中的常数)。


推荐阅读