c - 在 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;
解决方案
通常的 Unix/Linux 时间纪元是 1970 年 1 月 1 日,因此您可以使用任何常用函数,最有可能clock_gettime()
使用CLOCK_REALTIME
. 然后只需减去 1970 和 1984 之间的时间量(可以嵌入代码中的常数)。
推荐阅读
- javascript - 使用 CSS 重新设置选择下拉菜单的样式
- java - 为什么要使用我们自己的 Kafka 偏移存储库
- python - f.当 Pyspark 输出计数时
- javascript - Bootstrap & Rails 6 (no webpack) - 默认的 bootstrap javascript 不工作
- postgresql - 找出有时间戳的两个日期之间的分钟差异?
- c# - Unity中的脚本来模拟AR相机的物体运动?加速度计
- firebase - 我如何更改用户状态颤动的抽屉项目
- azure-devops - 运行 VSTest 时无法解析结果文件 Azure 管道
- hide - 我如何从引用我的网站的 SimilarWeb 网站中隐藏?
- openedx - 导师打开 edX 命令