2017-05-18 3 views
0

Ich mache eine einfache Qt-App, die Zeug aus einer CSV-Datei liest und daraus eine PCAP-Datendatei zum Lesen mit einer anderen Software erzeugt.Wireshark Pcap Konverter App: keine Konsolenausgabe mehr

Und sobald ich pcap_open_dead, pcap_dump_open oder pcap_dump aufrufe, bekomme ich keine Konsolenausgabe mehr, wenn ich meinen kleinen Konverter laufen lasse. Selbst die Hello World, die zu Beginn des Mainstreams erscheint, taucht nicht mehr auf. Wenn ich aus dem folgenden Code diese drei Methoden einfach auskommentiere, kommen die Konsolenausgabe und "Hello World" zurück.

Da ich neu und daher ahnungslos über pcap bin, bitte ich um Hilfe.

#include <QCoreApplication> 
#include <iostream> 
#include "pcap.h" 
using namespace std; 

struct pcapWriter_S 
{ 
    bool isAvailable; 
    int m_OutPcapIpId; 
    pcap_t* m_OutPcapHandle; 
    pcap_dumper_t* m_OutPcapFile; 
}m_pcapWriter; 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    cout << "Hello World!" << endl; 

    //m_pcapWriter.m_OutPcapHandle = pcap_open_dead(DLT_EN10MB,65535); 
    //m_pcapWriter.m_OutPcapFile = pcap_dump_open(m_pcapWriter.m_OutPcapHandle, QString("tmp_csv_out.pcap").toAscii().data()); 
    m_pcapWriter.m_OutPcapIpId = 1; 

    if (m_pcapWriter.m_OutPcapFile != 0) 
    { 
     m_pcapWriter.isAvailable = true; 
    } 

    QByteArray pkt_data; 
    // Omitted code to generate pkt data from input file 

    m_pcapWriter.m_OutPcapIpId++; 

    //pcap_dump((unsigned char*)m_pcapWriter.m_OutPcapFile, &header, (unsigned char*)pkt_data.data()); 

    return a.exec(); 
} 
+0

Können Sie Ihr Programm mit 'strace' ausführen und die Ausgabe drucken? – cnicutar

Antwort

0

Irgendwie war dies wegen mir pcap_open, aber noch nicht pcap_close ziemlich noch. Dazwischen geht das Konsolen-Zeug verloren - ich kann nicht schwören, dass es auf das PCAP-Ding geschrieben wird, aber es blockiert sowieso die Konsole.

Verwandte Themen