【发布时间】:2016-03-22 02:06:56
【问题描述】:
如果传递的参数始终为 NULL,time_t time(time_t *t) 函数能否返回失败?
如果调用的是time(NULL),还需要检查返回值吗?
唯一记录的错误代码是 EFAULT,它与指针无效有关。
【问题讨论】:
-
@user3159253 它可能会在
time((time_t*)junk)的情况下返回 EFAULT,以获得一些垃圾值。虽然在能够返回 EFAULT 的时候,我已经考虑过程序行为被没收。 -
对于一些垃圾。这个问题似乎没有实际意义,但是.. 嗯,让律师来吧。
-
@user3159253 与出名无关(尽管这使得它成为一个非常实际的选择);如果它被编入函数契约,它可以是任何值 (**)。
-
对于给定的平台?不,对于给定的平台,NULL 指针是完全确定的。但可以肯定的是,它可能是 != 0
-
好吧,根本没有 EFAULT。在 Linux-specific time() implementation in GLIBC 和 FreeBSD 中都没有 gettimeofday