Bonjour,
J'ai un petit problème que voici (UNIX) :
Je désire récupérer la le chemin du dossier Home de l'utilisateur qui lance mon programme, pour ce j'utilise la fonction getpwuid, qui prend un uid_t en paramètre et retourne un pointeur sur struct passwd.
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
   | int             init_inf(t_data *d)
{
  struct passwd *p;
 
  d->uid = getuid();
  if ((p = getpwuid(d->uid)) != NULL)
    {
      if ((d->u_name = strdup(p->pw_name)) == NULL)
         return (FAILURE_E);
      if ((d->u_home = strdup(p->pw_dir)) == NULL)
         return (FAILURE_E);
      free(p->pw_name);
      return (SUCCESS_E);
    }
  show_error(2, PRGM ": " ENOINFO "\n");
  return (FAILURE_E);
} | 
 Voici la fonction.
Il se trouve que j'ai quelques fuites de memoire : 
J'ai essayé de free tous les pointeurs de la structure, il se trouve que seul pw_name ne me sort pas de warning.
(Les fuites ne proviennent pas des strdup) 
			
		
Partager