我是 C 语言的新手,我正在尝试为以太网网络编写空闲端口监视器应用程序,该应用程序按协议测量广播流量并生成文本文件报告,但是它打印到文件的输出与预计例如在代码的第 174 行,如下所示,它打印出预期值 arp1_source
arp1_source = source;
fprintf(stdout,"arp1->source is %s\n",arp1_source);
但是当它在第 1365 行打印出相同变量的内容时,它会打印出不同的 mac 地址
fprintf(stdout ," %s %d.%d.%d.%d %d %d\n",
arp1_source,
arp1_ip_source[0],
arp1_ip_source[1],
arp1_ip_source[2],
arp1_ip_source[3],
arp1_total,
arp1);
我不知道为什么会这样,我不知道我做错了什么请帮忙,我的代码在下面(虽然它很长,如果需要我可以发送完整的代码)谢谢。
我已经定义了变量,但是当我执行数据包的实时捕获时,在第一行打印出来的 arp1_source 中的值与捕获完成后写入文本文件中的值不同,即第一行它可能打印出
“arp1 源是 0e:32:64:89:20:5e”
并且当要将存储在 arp1_source 中的mac地址打印到文本文件中时,如第二个代码所示,它会打印出错误的mac地址,好像原来的mac地址被另一个覆盖了,我声明了要存储的char字符串带有 const 关键字的 mac 地址。