日期:2014-05-16  浏览次数:20601 次

linux 如何取到纳秒的时间
情况是这样的:
  1、我在程序里面用gettimeofday()跟struct timespec结构结合,取系统时间。但是打印的时间秒后面只有六位小数,比如:1.123456.也就是只能打印到微妙级别。
  2、我用wireshark取网络报,分析数据包到达的时间的时候,wireshark能显示到秒后面9位,比如:1.123456000。 但是后三位全是0了就。这是怎么回事?
  3、我搜了搜,发现wireshark有软件时间戳。能精确到纳秒。大家能否给小弟详细解释一下原因。谢谢

------解决方案--------------------
clock_gettime可获得纳秒级精确
------解决方案--------------------
只有1588协议才可能能达到10ns级,还是使用算法计算的情况下
其他网络协议不可能做到的,1ns连光都只能走300mm

------解决方案--------------------
我想那就是走个形式而已
wireshark支持抓1588的包,也许那种情况下就不是0了