Bonsoir,

Je veux exécuter des commandes comme ls mais quand je tape des commandes plus longues que deux caractères, les caractères en plus de passent pas dans ma fonction. J'ai trouvé que c'est cette partie du code :

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
 void    loop(t_env *env2, char *buffer)
{
  char  *patate;
  char  **tab1;
  int   i;
 
  i = 0;
  tab1 = init(env2);
  tab1 = my_str_to_wordtab(*my_getenv("PATH", env2->environ), ':');
  i = 0;
  while (tab1[i] != NULL )
    {
      patate = malloc((my_strlen(tab1[i]) + my_strlen(buffer) + 1) * sizeof(char*));
      if (patate == NULL)
        my_putstr_error("errreur amlloc");
      strcat(patate, *tab1);
      del_char(patate, '=');
      del_str(patate, "PATH");
      strcat(patate, "/");
      strcat(patate, buffer);
      i++;
      /* free(patate); */
    }
  /* while (patate[i] != '\0') */
  /*   i++; */
  patate[i] = NULL; /* c'est cette ligne */
  verif(patate);
}
Mais quand je l'enlève, execl m'affiche une erreur.

Merci de votre aide d'avance et bonne soirée.