Знаете ли вы, как создать пустой файл pcap с помощью winpcap dll? Я буферизирую отфильтрованные пакеты в памяти программы и хочу сохранить, когда пользователь щелкнет, чтобы экспортировать в файл .pcap.
Но при использовании pcap_open_offline (const char * fname, char * errbuf) можно открыть файл, только если файл существует. Я пытался fopen и другие функции для создания файла ранее (в двоичном режиме тоже), но безуспешно.
Так как получить указатель дескриптора pcap_t для pcap_dump_open (pcap_t * p, const char * fname) таким образом?
ОБНОВЛЕНО: я пытаюсь использовать этот код
fileHandle = pcap_open_offline(pcap_file_path.c_str(), errbuf);
if (errbuf == nullptr) {
fprintf(stderr, "\nUnable to open the file %s.\n", pcap_file_path.c_str());
return 1;
}
if (fileHandle == nullptr) {
fprintf(stderr, "\nError to open file\n");//HERE IT FAILS
return 1;
}
dumpfile = pcap_dump_open(fileHandle, pcap_file_path.c_str());
if (dumpfile == NULL)
{
fprintf(stderr, "\nError opening output file\n");
return 1;
}
РЕШЕНИЕ: ( Создание файла pcap )
/*create fake handle*/
fileHandle = pcap_open_dead(DLT_EN10MB, 65535);
if (fileHandle == nullptr) {
fprintf(stderr, "\nError to open file\n");
return 1;
}
/* Open the dump file */
dumpfile = pcap_dump_open(fileHandle, file_path.c_str());
if (dumpfile == NULL)
{
fprintf(stderr, "\nError opening output file\n");
return 1;
}