mriviere
Messages postés17Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention23 juin 2006
-
16 juin 2006 à 10:25
mriviere
Messages postés17Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention23 juin 2006
-
16 juin 2006 à 12:54
Bonjour a tous voila mon probleme: Comme vu dans un message precedent j'effectue un mise a jour de mon fichier de la maniere suivante:
->ouverture du fichier a mettre a jour
fopen(ancien fichier)
->ouverture d'un fichier tampon
fopen(fichier temp)
->copie des ligne valide d'un fichier a l'autre
->fermeture des deux fichiers
fclose(ancien fichier)
fclose(fichier temp)
->je renome fichier temp en ancien fichier
rename(fichier temp,ancien fichier)
-> Mon ancien fichier est maintenant a jour...
Ok tout ca marche bien mais au bout de 195 boucle le programme plante car il n'arrive plus a ouvrir ancien fichier!! Y-a t-il quelque chose que j'ai oublie? quelqu'un connait il la soluce?
Merci beaucoup
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 20121 16 juin 2006 à 10:57
Essaye d'inserer des
printf("1");
printf("2");
printf("3");
apres chaque fopen ou fclose ou rename ... et regarde le dernier
chiffre affiché, tu sauras alors à quel endroit ca plante (c'est mon
debugger perso ;D), mais si tu veux mon avis, je pense que ca vient
d'ailleurs dans ton code.
Essaye deja de faire le test que je viens de te dire et regarde d'ou vient le plantage.
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 20121 16 juin 2006 à 11:52
Essaye:
FILE* ft=fopen( "temp.txt", "a");
if (ft==NULL)
perror("fopen");
Non seulement c'est plus propre, mais en plus tu auras une indication sur l'erreur.
Par contre tu peut faire voir le code entier de la fonction ou il y a ce bout de code ?
mriviere
Messages postés17Date d'inscriptionjeudi 26 janvier 2006StatutMembreDernière intervention23 juin 2006 16 juin 2006 à 12:54
En fait j'ai utiliser ce bout de prog pour essayer une autre solution , en fait au depart je faisais comme ca:
if ((ft=fopen("temp.txt","w"))==NULL) // Open temp Logfile
{
printf("OPEN ERROR temp.txt \n");
exit(1);
}
Et pour ce qui est de la fonction en entier elle fait plus de 500 lignes...
Mais j'ai un ami qui a eu exactement le meme probleme (apres 195 cycle) mais il ne se souvient pas comment il a resolu le probleme....
Je vais essayer ton code au moins j'aurais le type d'erreur.
Merci de ton aide et si tu trouve la soluce n'hesite pas!!