c99中以毫秒为单位的时间?

时间:2019-04-22 00:19:29

标签: c time c99 time.h

我试图弄清楚如何计算C99中某些套接字编程连接之间的毫秒数,但在C99上获得0毫秒并在mac终端上返回实际值。我在代码中包含了时间部分。

初始化:

  struct timeval start,end;
  double t1,t2;
  t1 = 0.0;
  t2 = 0.0;

开始运营:

t1+=start.tv_sec+(start.tv_usec/1000000.0);

操作结束:

t2+=end.tv_sec+(end.tv_usec/1000000.0);

然后仅以毫秒为单位打印实际时间:

printf("Sent........RTT = %g ms\n",(t2-t1)/100);

1 个答案:

答案 0 :(得分:1)

假设您正确更新了timeval结构,您不是在计算毫秒,而是计算整秒,然后将差除以100而不是乘以1000。通过计算时间差,精度会降低:

diff += (end.tv_sec - start.tv_sec) * 1000.0 + end.tv_usec / 1000.0 - start.tv_usec / 1000.0;

...

printf("Sent........RTT = %g ms\n", diff / 100);