bonjour tout le monde,
je galere sur mon tout petit code depuis deux jours a cause de cette fonction que je n arrive pas a faire marcher.
voici le topo
tout d abord j ouvre un fichier : "../list_test.txt"; la fopen marche.
ce fichier contient une liste de fichier que je dois ouvrir successivement, et c est la que ca ne marche plus:le plus bisard c est que fopen marche juste pour la derniere iteration du while.

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
24
25
26
27
28
29
30
31
32
33
34
35
36
   char * p1= malloc(17 );
   p1="../list_test.txt";
   FILE *f = fopen( p1, "rt" ); /* ouvre en lecture */
 
   if (f==NULL) {
     printf("erreur ouverture\n");
     return 1;        /* sort du programme (code erreur 1) */
   }
 
   while ( fgets( line, 256, f ) != NULL)  /* essai lecture ligne */
         { 
             char test[]="../test1/" ;
             char * path = malloc(strlen(test)+ strlen(line) + 1 );
             strcpy(path,test);
             strcat(path,line);  /*je fais une concatenation pour avoir la bonne           adresse*/
 
             printf("path : %s\n",path); /*je verifie l adresse et c est  la                             bonne!*/
 
 
            FILE *k = fopen(path,"rt" ); /* ouvre en lecture */
           if (k==NULL) {
            printf("erreur ouverture: %s\n",path);
            return 1;
            }
            if (k!=NULL) {
            printf("ouverture: %s\n",path);
            fclose(k);
            }
             free(path);
 
           } 
 
 
   fclose(f);
     system("PAUSE");	
  return 0;
j espere que qq pourra m aider
merci