0

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コードは私にとっては正常に機能していますが、このコードを追加するとすぐに、セグメンテーション違反エラーが発生します:(

誰か助けてくれませんか?

トンありがとう。

4

1 に答える 1

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 では使用できません。

于 2010-06-06T20:00:30.357 に答える