【发布时间】:2017-06-09 12:44:56
【问题描述】:
引用man 3 ftime:
此功能已过时。不要使用它。如果以秒为单位的时间足够,则可以使用 time(2); gettimeofday(2) 给出微秒; clock_gettime(2) 以纳秒为单位,但没有广泛使用。
为什么不应该使用它?有什么危害?
我知道time(2)、gettimeofday(2) 和clock_gettime(2) 可以用来代替ftime(3),但是ftime(3) 给出的精确时间是毫秒,我觉得这很方便,因为毫秒是我需要的精确精度。
【问题讨论】:
-
首先:它将被从库中删除,因为它已经过时了......
-
过时的功能往往不太便携,并且可能有一天会在您最不期望的时候消失。最好使用标准且受支持的函数,例如
gettimeofday,并使用简单的算法来获取以毫秒为单位的时间。 -
那么他们为什么要删除这么方便的功能。
-
"ftime(3) 精确地给出毫秒数" - 这有点误导。它可能会给你精确的毫秒,它可能不会 - 不能保证粒度。未指定结构中其他字段的设置。错误未指定...使用更现代的东西。 Int 除以 1000 在通常的平台上并不太贵。
-
值得注意的是,
ftime在 2008 年之前一直在 POSIX 标准中——后来 POSIX 将其删除,因此它不再是任何标准函数,因此不再具有可移植性。