Bonsoir,
J'ai un petit probleme dans un programme que je fais sous linux, j'utilise des variables allouer dynamiquement, auquel j'attribue des valeurs lus dans des fichiers. Le problème viendrais des descripteurs de fichiers
je déclare mes variables comme ceci, dans une fonction appeller plusieurs fois:
Plus loin a la fin de la fonction je dois fermer les descripteur et libérer la mémoire allouer:
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
17
18
19
20
21
22
23 int startDeamon() { char *IP=NULL, *date_search=NULL, *date_lastModif=NULL, *date_lastScan=NULL, *SRCip={"SRC"}, *buff_file=NULL; FILE *file_ulog=NULL, *file_out=NULL; ... file_ulog=fopen(FILE_ULOG,"r"); if (file_ulog == NULL ) exit(1); date_search=scalloc(24); date_lastScan=scalloc(24); date_lastModif=scalloc(24); if ( stat(FILE_ULOG, &mystat) == -1) { perror("stat"); exit(EXIT_FAILURE);} strftime(date_lastModif, 25, "%c", localtime(&mystat.st_mtime)); if ( ( file_out=fopen(FILE_OUT,"r") ) == NULL ) { ...
Et la ca plante au niveau du fclose(file_out) si j'ai écris dans file_out, j'ai droit à ce message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 free(date_search); free(date_lastModif); free(date_lastScan); date_search=NULL; date_lastModif=NULL; date_lastScan=NULL; if(file_ulog != NULL) fclose(file_ulog); if(file_out != NULL) fclose(file_out);
Avez vous une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 *** glibc detected *** free(): invalid next size (normal): 0x0804de68 ***
Merci de votre aide
Partager