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

time in milliseconds in c99?

我试图弄清楚如何计算 C99 中某些套接字编程连接之间的毫秒数,但在 C99 上得到 0 毫秒,而 returns 在 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);

假设您正确地更新了 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);