如何在libpcap中使用pcap_stats?

时间:2010-06-04 13:58:26

标签: libpcap

我在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代码对我来说运行正常 - 但是一旦我添加此代码,我就会收到分段错误错误:(

有人可以帮帮我吗?

非常感谢。

1 个答案:

答案 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上。