time.h 是否需要连接到互联网

时间:2021-07-12 09:11:02

标签: c microcontroller time.h

我一直试图在我的电脑上运行一个 c 函数,它给出了自 Epoch 以来经过的秒数,它似乎工作正常

#include <stdio.h>
#include <time.h>

int main () {
   time_t seconds;

   seconds = time(NULL);
   printf("Number of seconds since January 1, 1970 = %ld\n", seconds);
  
   return(0);
}

现在,我有一个微控制器,我尝试在其上运行相同的代码。自微控制器启动以来,它总是给我时间,而不是自 EPOCH(1970 年 1 月 1 日)以来。所以,我有点困惑为什么我没有得到通常的结果?我是否需要连接到互联网,以便某些服务器将自 EPOCH 以来的计时器发送到 time.h 库?

换句话说,如果我在没有互联网连接的计算机上运行此代码,我会得到自 EPOCH 以来的时间。如果不是,那为什么?

1 个答案:

答案 0 :(得分:2)

不,time.h 不需要互联网连接。在计算机上,它向操作系统询问当前时间并进行一些转换以返回 Epoch。所有 PC 电脑都有一个带电池的时钟芯片,可以在断电时保持时间。大多数操作系统使用 Internet 来获取时间并确保时钟具有正确的时间。如果没有互联网,那么时钟仍然给出合理正确的时间。

在微控制器上,通常没有时钟芯片 (RTC) 来保持掉电时的时间。您可以购买 RTC 连接到微控制器并读取它,而不是使用标准时间功能。

这是连接到微控制器的 example of real time clock