该time()函数仅返回一个整数.具有秒和亚秒的两个
gettimeofday()和
clock_gettime()返回结构(不同的结构)(微秒gettimeofday()和纳秒clock_gettime()).你必须做一个适当的(但很简单的)计算来返回它作为a double.
将当前的Unix时间戳作为一个返回是没有意义的float; 你只能得到精确到几分钟左右的数值.
POSIX已正式弃用gettimeofday().但是,Mac OS X没有clock_gettime(),因此您可能会发现gettimeofday()更广泛的可用.
#include <time.h>
#include <stdio.h>
int main(void)
{
long t0 = time(0);
float f0 = t0;
float f1;
float f2;
long d_pos = 0;
long d_neg = 0;
while ((f1 = t0 + d_pos) == f0)
d_pos++;
while ((f2 = t0 + d_neg) == f0)
d_neg--;
printf("t0 = %ld; f0 = %12.0f; d_pos = %ld (f1 = %12.0f); d_neg = %ld (f2 = %12.0f)\n",
t0, f0, d_pos, f1, d_neg, f2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
样本输出:
t0 = 1385638386; f0 = 1385638400; d_pos = 79 (f1 = 1385638528); d_neg = -51 (f2 = 1385638272)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3898 次 |
| 最近记录: |