Bonjour, j'aimerais savoir une chose,
dans mon main(), j'ouvre un fichier, et je passe le pointeur à une fonction pour qu'elle écrive dans le fichier. Si je fais ca c'est parce que la fonction qui ouvre le fichier et très souvent appelé, donc j'économise du temps machine.
le problème c'est que quand j'essai d'écrire dans le fichier il me dit "access violation"
voilà le code :
ca c'est dans le main. et c'est la fonction show packet à laquelle je passe le pointeur.
la fonction showpacket :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 FILE *fp=fopen("./fichier/resultatfonction.txt","w"); desc = pcap_open_offline("./fichier/fichiertest.pcap", errbuf); if (desc == NULL) printf("pcap_open_offline: %s\n", errbuf), exit(2); while ((packet = pcap_next(desc, &hdr))) { showpacket(hdr, packet,fp); }
Je pense que l'erreur vient des pointeur mais j'ai un peu de mal à débrouiller tout ca.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void showpacket(struct pcap_pkthdr hdr, const u_char *packet, FILE *fp) { char chaineretour[10000]; struct tm *mytime; int i, j, k; mytime = localtime(&hdr.ts.tv_sec); sprintf(chaineretour, "%.2d:%.2d:%.2d.%.6i", mytime->tm_hour, mytime->tm_min, mytime->tm_sec, (int)hdr.ts.tv_usec); fwrite(chaineretour,strlen(chaineretour),sizeof(chaineretour),fp); printf(", Len: %i (0x%x)\n",hdr.caplen,hdr.caplen);
merci pour le coup de main
Partager