Bonjour,

J'ai un projet de communication entre une interface, un administrateur et plusieurs machines a effectuer.

Deux soucis se présentent.

D'abord quand je compile, le warning suivant :
"warning: comparison between pointer and integer"

Qui se dirige vers la bout de code suivant :

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
  while((entree = readdir(rep)) != NULL) //Tant qu'il reste quelque chose a lire
    {
      if (strncmp(entree->d_name, ".", 1) == 0)
	continue;
 
      if (entree->d_name == DT_REG || entree->d_type == DT_DIR) // Ne lire que les fichiers et les repertoires
 
	{
	  *length = *length + strlen(entree->d_name) +1; // Modifie la taille des donnees
	  newcontenu = realloc(contenu, *length); //Reallocation memoire
	  if (newcontenu == NULL)
	    {
	      perror("realloc"); // Si erreur dans realloc
	      *length = 0;
	      return NULL;
	    }
 
      char *retval;
      retval = NULL;
      contenu = newcontenu;
      strncat(contenu, entree->d_name, NAME_MAX); // Ajoute le nom
      strcat(retval,"\n"); // Ajoute le retour a la ligne
	}
    }
C'est un bout d'une fonction fournie par les profs, et je n'en comprends pas tous les éléments !

Deuxieme souci, j'ai un superbe sgmentation fault qui me poursuit des que j'execute mon programme.
J'ai beau rajouter des malloc partout ou j'avais pu les oublier, il persiste !

J'espere que ce probleme est lié au premier, et que vous pourrez m'aider !

Merci beaucoup !