Salut à tous,
J'obtiens l'érreur "Segmentation fault" lorsque je compile ce code(lit les lignes d'un fichier et extrait une certaine partie de chacune des lignes):
*********************************************************
const char filename[20] = "servers";
char *tmpstr = NULL;
char buff[40];
char *extension;
FILE * file;
short pos = 0;
short nbligne = 0;
short diff = 0;
short len_tmpstr, len_buff = 0;
bool stop = 0;
file = fopen( filename, "r" );
// nombre de lignes dans le fichier
for (nbligne = 0; stop == 0; nbligne++)
{
if (fgets( buff, sizeof (buff), file ) == NULL)
{
stop = 1;
printf( "nbligne=%d\n", nbligne );
fclose( file );
}
}
file = fopen( filename, "r" );
for (pos = 0; pos <= nbligne; pos++)
{
if (fgets( buff, sizeof (buff), file ) == NULL) fprintf( stderr, "ERROR fgets() failed: %s\n", strerror( errno ) );
tmpstr = strchr( buff, '|' );
len_tmpstr = strlen( tmpstr );
len_buff = strlen( buff );
diff = len_buff - len_tmpstr;
strncpy( extension, buff, diff );
printf("extension=%s\n", extension);
printf( "tmpstr=%s", tmpstr );
printf( "buff=%s\n", buff );
}
*********************************************************
L'érreur viens apparament de la fonction strncpy() mais je ne comprend pas pourquoi car
extension est bien un pointeurs sur des
char et
buff un tableau de charactères..
Merci d'avance ;)