bonjour a tous

alors voila mon programe avec des manipulation de fichier dont j'ai comme erreur : erreur de segmentation
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
FILE *tab=NULL;
FILE *rep=NULL;
FILE *file1,*file2,*file3;
char *p = NULL ;
char lecture[100],lit[100];
char *param;
char racine[100];
char fp[100],fp2[100];
 
 
 
 param="/opt/local/proddm/newcat/niveaufin.tab";
tab=fopen(param,"r"); 
fgets(lecture,100,tab);
strcpy ( racine, "/opt/local/proddm/newcat/");
if ( (p = strchr(lecture, '\n')) != NULL )
       *p = '\0' ;
 
 
 strcpy(fp,racine); 
 strcat(fp,lecture);
 
 file1=fopen(fp,"r");     
 strcat(fp,"/cst");
 
 file2=fopen(fp,"r");
 strcpy(fp2,fp);
 
 strcat(fp,"/dxf.cst");
 file3=fopen(fp,"r");    
 
while (!feof(tab))
  {
   if (file1==NULL || file2==NULL) 
      sprintf(lecture,"fond");	
   if (file3!=NULL) 
   {
 
   rep=fopen(fp,"r");
   } 
   else
   {
 
   strcat(fp2,"/couleur.cst");
   rep=fopen(fp2,"r");
   }
fgets(lit,100,rep);
 
}
fclose(file1);
fclose(file2);
fclose(file3);
fclose(rep);
fclose(tab);
}
si quelqu'un a une idee de l'origine du probleme

merci