Передача аргумента на libpcap pcap_loop () обратный вызов

Я использовал ZetaHtmlTidy в прошлом, чтобы загрузить случайные веб-сайты и затем удариться о различные части содержания с xpath (например,/html/body//p [@class ='textblock']). Это работало хорошо, но были некоторые исключительные сайты, с которыми это имело проблемы, таким образом, я не знаю, является ли это абсолютное лучшее решение.

5
задан Denis 14 November 2009 в 15:11
поделиться

2 ответа

Вам необходимо определить структуру вне main () и привести args в got_packet (), например:

Configuration *conf = (Configuration *) args;
printf ("test: %d\n", conf[0].id);
2
ответ дан 14 December 2019 в 08:53
поделиться

Я перепишу Ваш код, теперь он компилируется без ошибок:

#include <pcap.h> 

typedef struct {
  int id;
  char title[255];
} Configuration;

void got_packet( Configuration args[], const struct pcap_pkthdr *header, const u_char *packet){
  (void)header, (void)packet;
  printf("test: %d\n", args[0].id);
}

int main(void){
  Configuration conf[2] = {
    {0, "foo"},
    {1, "bar"}};

  pcap_loop(NULL, 0, (pcap_handler)got_packet, (u_char*)conf);
}
4
ответ дан 14 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: