Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wireshark未打开pcap_转储文件_C_Wireshark_Winpcap_Pcap - Fatal编程技术网

Wireshark未打开pcap_转储文件

Wireshark未打开pcap_转储文件,c,wireshark,winpcap,pcap,C,Wireshark,Winpcap,Pcap,我正在尝试以libpcap格式保存此文件的输出,尽管该文件已被保存并写入了正确的数据,但Wireshark无法打开它。有人看到我在这里遗漏了什么吗?谢谢 // opening the device here to listen handle = pcap_open_live( dev, BUFSIZ, 1, 1000, errbuf ); unsigned int dlt = DLT_EN10MB; pcap_set_datalink(handle,dlt );

我正在尝试以libpcap格式保存此文件的输出,尽管该文件已被保存并写入了正确的数据,但Wireshark无法打开它。有人看到我在这里遗漏了什么吗?谢谢

   // opening the device here to listen
   handle = pcap_open_live( dev, BUFSIZ, 1, 1000, errbuf );
   unsigned int dlt = DLT_EN10MB;
   pcap_set_datalink(handle,dlt );


  FILE *filename;
  filename = fopen("/workarea/capture","a+");

  pcap_dumper_t * dump = NULL;

 // opens the file
 dump = pcap_dump_open( handle, (const char *)filename );

 pcap_loop(handle,-1,my_callback,(unsigned char *)filename);

 return (0);
}


 void my_callback(u_char *dump,const struct pcap_pkthdr* pkthdr,const u_char *packet)
  {
    unsigned int i=0;
    pcap_dump(dump,pkthdr,packet);

  }

您对pcap\u dump\u open的呼叫似乎不正确。它正在传递一个FILE*指针,但应该传递一个文件名。使用
pcap\u dump\u fopen
作为文件指针。或者继续使用pcap_dump_open,但只需将文件名传递给它。

谢谢标记。这就解决了。dump=pcap_dump_open(句柄,“/tmp/sniff.pcap”);pcap_循环(句柄,-1和pcap_转储,(字符*)转储程序);在执行此操作时,请检查
pcap\u dump\u open()
是否返回空指针;如果返回空指针,则表示文件尚未成功打开/创建以供写入,程序将无法工作。不要假设一个可能失败的调用不会失败。