salut! j'ai écrit un programme qui marche parfaitement sur windows mais une fois sur linux il y a des segmentation fault je ne sais pas ou est le problème le fichier à lire étant bien dans le même dossier que le programme.de l'aide svp

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
 
#include "stdio.h"
#include <string.h>
/*------------------------------------------------------
	-- fonction qui permet de lire un fichier
---------------------------------------------------------*/
void read_file()
{
	char n;
	char m;
	int p;
 
	FILE *fp;
        fp=fopen("read_file","rt");   //ouverture du fichier
	if(fp==NULL){
        	printf("le fichier read_file.txt ne peut pas etre ouvert ou cree");
        	//exit(0);
	}
	fscanf(fp,"%d\n", &nbr_sommet);
	while(n != '!'){
		fscanf(fp,"%c\r%c\r%d\t", &n,&m,&p);  //lit successivement deux caractères(nom des sommets) et un entier(valuation)
		matrice[n-64][m-64] = p ;             //utilisation du code ascii pour passer des chiffres aux lettres(minuscule)
		matrice[m-64][n-64] = p ;
	}   
	fclose(fp);    
}