time_t time(time_t *t)
如果传递的参数始终为NULL ,函数是否会返回失败?
如果是通话time(NULL)
,我们还需要检查返回值吗?
唯一记录的错误代码是EFAULT,它与指针无效有关.
是.time
有记录可能失败的情况:
如果:time()函数可能会失败:
[EOVERFLOW]自Epoch以来的秒数不适合time_t类型的对象.
资料来源:http://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html
预计这将在大约22年内实现,不会在64位系统或使用64位的32位系统上实现time_t
.
此外,任何情况的存在都将失败或可能失败的情况也允许实现定义的错误,尽管它们的存在将是严重的实施质量缺陷.
EFAULT
是不存在/不存在的,因为只有在程序具有未定义的行为时才会发生.
所以尽管如此,在现实世界中,time
实际上并没有失败.
时间(NULL)是否会返回失败?
C号标准说
C11:7.27.2.4:
time函数返回实现对当前日历时间的最佳近似值.
(time_t)(-1)
如果日历时间不可用,则返回该值.