Parce que je voudrais faire des tests avec le libpcap et un petit programme C, je J'essaie de passer une structure de Main () à Got_Packet (). Après avoir lu le tutoriel libpcap, j'avais trouvé ceci:
Le prototype de pcap_loop () est Ci-dessous: p> blockQuote>
xxx pré> Le dernier argument est utile dans certains les applications, mais plusieurs fois est simplement définir comme null. Supposons que nous ayons des arguments de nos propres que nous souhaitons envoyer à notre Fonction de rappel, en plus de la arguments que pcap_loop () envoie. Cette est où nous le faisons. Évidemment, vous devez tycaire à un pointeur U_char pour vous assurer Les résultats le rendent correctement; Comme nous le verrons plus tard, PCAP utilise de certains moyens très intéressants de transmettre des informations sous la forme d'un u_charn pointeur. p> BlockQuote>
Donc, selon cela, il est possible d'envoyer la structure dans got_packet () à l'aide de l'argument numéro 4 de pcap_loop (). Mais après avoir essayé, je reçois une erreur. P>
voici mon code (buggé): p>
xxx pré> i obtenir ce type d'erreur après quelques tests:
gcc -c got_packet.c -o got_packet.o got_packet.c: In function âgot_packetâ: got_packet.c:25: error: invalid type argument of â->â
3 Réponses :
Vous devez définir la structure en dehors des principaux () et lancer args i> dans got_packet () comme:
Je réécris votre code, il est maintenant compilé sans erreur:
compiler le code ci-dessus. P>
Installation libpcap -> sudo apt-get install libpcap0.8-dev p>
ALORS -> GCC GOT_PACKET.C -LPCAP -O GOT_PACKET.O P>
((configuration *) args) [0] -> ID code> ???
Merci pour votre réponse ; Après avoir essayé qu'il ne fonctionne pas ... $ CARE GCC -C GOT_PACKET.C -O GOT_PACKET.O GOT_PACKET.C: EN FONCTION 'GOT_PACKET': GOT_PACKET.C: 28: ERREUR: 'Configuration' non déclaré (première utilisation dans cette fonction) GOT_PACKET.C: 28: ERREUR: (chaque identifiant non déclaré est signalé une fois que got_packet.c: 28: Erreur: Pour chaque fonction, il apparaît dans.) got_packet.c: 28: Erreur: erreur de syntaxe avant ')' Token got_packet.c : 94: AVERTISSEMENT: Les objectifs du pointeur dans la mission diffèrent dans la signature FAIT: *** [got_packet.o] erreur 1