楽しみのために単純なスニファーを作成していましたが、ダンプをファイルに出力したいと考えています。スニファーのコードは次のとおりです。
#include <stdio.h>
#include <pcap.h>
#define MAX_PACKET_NUM 5
int main(void) {
struct pcap_pkthdr header;
const u_char *packet;
char errbuf[PCAP_ERRBUF_SIZE];
char *device;
pcap_t *pcap_handle;
int i;
printf("## Now sniffing on: %s ##\n", device);
printf("## Max packets number for this session: %d\n", MAX_PACKET_NUM);
printf("[?] Sniffing...\n");
pcap_handle = pcap_open_live(device, 1000, 1, 0, errbuf);
for(i=0; i < MAX_PACKET_NUM; i++) {
packet = pcap_next(pcap_handle, &header);
printf("[!] Captured a %d bytes packet!\n", header.len);
dump(packet, header.len);
}
}
正常に動作しますが、ダンプをファイルに出力するにはどうすればよいですか? ファイル ストリームを使用してみましたが、関数を出力する方法がよくわかりません。ご覧のとおり、dump()関数は出力を画面に出力します。ファイルに出力する関数があるのではないでしょうか? みんな助けてください!