我在sniffex代码(http://www.tcpdump.org/sniffex.c)中添加了以下函数:
typedef struct pcap_stat mystat;
mystat * mystatp;
/* Put the interface in statstics mode */
if(pcap_stats(handle, mystatp) < 0)
{
fprintf(stderr,"\nError setting the mode.\n");
pcap_close(handle);
/* Free the device list */
return;
}
Sniffex代码对我来说运行正常 - 但是一旦我添加此代码,我就会收到分段错误错误:(
有人可以帮帮我吗?
非常感谢。
答案 0 :(得分:2)
我相信你忘了为mystat分配内存。
试试这个:
typedef struct pcap_stat mystat;
...
mystat actualStat; /* allocate memory for mystat on stack - you can also do it on the heap by malloc-ing */
mystat *mystatp = &actualStat; /* use allocated memory */
/* Put the interface in statistics mode */
if(pcap_stats(handle, mystatp) < 0)
{
fprintf(stderr,"\nError setting the mode.\n");
pcap_close(handle);
/* Free the device list */
return;
}
在Pcap.Net中,我使用pcap_stats_ex()
,但它可能仅在WinPcap上可用,而不在libpcap上。