Q:

Очиски памяти при обработке pcap-пакета

Я пишу программу для анализа pcap-файлов. Программа должна использовать минимум памяти. Задался вопросом какой из способов перебора пакетов самый оптимальный по памяти:

Использовать pcap_ex, который (как я понял), не очищает память после обработки, и использовать memcpy
 while (1)        
{
 l_numPkts = pcap_next_ex(pcap, &header, &pkt_data);
 //do something
  memcpy(dst,pkt_data,size);    
}

Использовать pcap_loop
 pcap_loop(pcap, 0, func, NULL)

void func(u_char *temp, const struct pcap_pkthdr *header, const u_char *data)
{
//...
}

Или лучше заморочиться и написать собственную функцию?

Я пока не очень хорошо разбираюсь в этой теме. Заранее спасибо!

A:

Эти функции просто двигают курсор по файлу замаппив его через mmap. Память дополнительно не выделяется. А вот за выделением памяти в  dst ( memcpy(dst...) нужно следить самому.
https://ru.wikipedia.org/wiki/Mmap

