我正在玩libpcap并发现了一件奇怪的事情。
输出的一部分是: “来自:src_addr,收件人:dst_addr”
如果我用一个陈述打印,即 printf(“From:%s,To:%s \ n”,inet_ntoa(ip_hdr-> ip_src),inet_ntoa(ip_hdr-> ip_dst)); 打印的dst_addr与打印的src_addr完全相同。但是,当我在此行设置断点并使用gdb检查存储在ip_src和ip_dst中的值时,它们是不同的。
如果用两份陈述书写,即 printf(“From:%s”,inet_ntoa(ip_hdr-> ip_src)); printf(“To:%s \ n”,inet_ntoa(ip_hdr-> ip_dst)); 然后问题消失了,输出中的src_addr和dst_addr也不同了。