【发布时间】:2015-12-26 07:04:04
【问题描述】:
我需要为我的申请记录当前日期和时间。 我已经用C编写了代码。我已附上代码
#include <stdio.h>
#include <time.h>
int main()
{ time_t t;
while(1)
{ time(&t);
printf("Today's date and time : %s",ctime(&t));
}
}
输出是
Today's date and time : Wed Dec 31 23:59:59 1969
Today's date and time : Wed Dec 31 23:59:59 1969
Today's date and time : Wed Dec 31 23:59:59 1969
Today's date and time : Wed Dec 31 23:59:59 1969
自 UNIX 时间开始以来,时间没有得到更新。 我在另一台计算机上运行了相同的程序,它运行得很好。 为什么我的电脑会出现此错误,我该如何解决?
谢谢
任何帮助表示赞赏。
编辑:代码中有一个错误,我纠正了它,以便在while循环中更新时间
【问题讨论】:
-
你检查
errno了吗? -
另外,您的计算机时钟中设置的日期是什么?
-
您需要在每次需要时间时致电
time()。ctime(&t)将继续打印调用time()时的时间。因此,您的代码将产生相同的输出。永远。至于为什么要打印那个特定的时间,该值与t具有值-1一致,该值被保留以指示错误。检查您的系统时钟设置是否正确(例如使用适当的系统实用程序)。并检查 CMOS 电池(用于保持系统时钟滴答作响,尤其是在计算机断电时)是否没电。如果是平的,请更换它。 -
您能否描述一下您正在运行的硬件和操作系统?你能以其他方式检查系统时钟吗(不使用 C 程序)?
-
一个好的经验法则是初始化大多数局部变量。所以你也许应该声明
time_t t=0;
标签: c time unix-timestamp