Я пытаюсь создать программу, которая будет анализировать файл pcap до истечения таймера.Для этого я использую alarm
функцию, найденную здесь , которая действительно останавливает pcap_loop
, но определенно не по истечении заданного времени.
Важные части кода:
pcap_t *handle;
void end_loop(int signum)
{
pcap_breakloop(handle);
}
int main(...){
...
handle = pcap_open_live(argv[2], BUFSIZ, 1, 100, errbuf);
....
signal(SIGALRM, end_loop);
alarm(5);
pcap_loop(handle, num_packets, got_packet, NULL);
pcap_close(handle);
send_syslog_message(hostname, list_of_parsed_packets));
return 0;
}
Я пытался запустить программу много раз, и она всегда останавливается, но, как следует из названия, время, которое требуется, просто случайное.Я что-то не так делаю?