我试图弄清楚如何计算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);
答案 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);