gpt4 book ai didi

c++ - 使用时间(NULL)时的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 06:17:33 25 4
gpt4 key购买 nike

我正在使用

time_t t = time(NULL);

获取自 1.1.1970 以来的秒数。

在两台不同的机器上我得到两个不同的值,在一台上我得到 1,419,120,000 在另一台上我得到 7,812,616,799,348,535,896

重要的是要说两台机器上的值都很好但突然停止工作。其他机器长时间运行相同的代码没有任何问题。

此外,该项目编译为 32 位项目,而该项目在 sql server 2008 64 位操作系统上运行。

有什么建议吗?

提前致谢。

最佳答案

std::time的返回值未指定:

The encoding of calendar time in std::time_t is unspecified, but most systems conform to POSIX specification and return a value of integral type holding the number of seconds since the Epoch. Implementations in which std::time_t is a 32-bit signed integer (many historical implementations) fail in the year 2038.

看起来您的一个系统提供了您期望 POSIX 版本提供的功能,而另一个……没有?

请注意 std::time_t本身也是未指定的:

typedef /* unspecified */ time_t;

Although not defined, this is almost always an integral value holding the number of seconds (not counting leap seconds) since 00:00, Jan 1 1970 UTC, corresponding to POSIX time.

关于c++ - 使用时间(NULL)时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29951405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com