时间(NULL)是否会返回失败?

Jay*_*Jay 21 c time posix

time_t time(time_t *t)如果传递的参数始终为NULL ,函数是否会返回失败?

如果是通话time(NULL),我们还需要检查返回值吗?

唯一记录的错误代码是EFAULT,它与指针无效有关.

R..*_*R.. 22

是.time有记录可能失败的情况:

如果:time()函数可能会失败:

[EOVERFLOW]自Epoch以来的秒数不适合time_t类型的对象.

资料来源:http://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html

预计这将在大约22年内实现,不会在64位系统或使用64位的32位系统上实现time_t.

此外,任何情况的存在都将失败可能失败的情况也允许实现定义的错误,尽管它们的存在将是严重的实施质量缺陷.

EFAULT 是不存在/不存在的,因为只有在程序具有未定义的行为时才会发生.

所以尽管如此,在现实世界中,time实际上并没有失败.

  • @Peter:问题标记为posix. (4认同)
  • "不久"......如果你认为机器的时钟是正确的;) (2认同)

hac*_*cks 5

时间(NULL)是否会返回失败?

C号标准说

C11:7.27.2.4:

time函数返回实现对当前日历时间的最佳近似值.(time_t)(-1)如果日历时间不可用,则返回该值.

  • 我猜`(time_t)( - 1)`在某种意义上是一个"最佳近似",如果无法检索时间信息......尽管如果不将其视为错误条件,这种近似在实践中是多么有用. (5认同)