Je vous explique mon but est de creer un minishell en langage C. Je doit pour cela me servir des binaire existant dans /bin ainsi que de quelque builtins a faire , notament setenv et cd.
J' ai realiser tous ces builtins , je galere dans la fonction main, je ne sais pas comment gerer les different processus
avec le main ci dessou, je peu executer mes commande , cependant qd je fait setenv puis ensuit env, rien a change. Ma fonction setenv fonctionne pourtant. Pareil pour cd je fait cd, puis ls et je me rend compte que rien a changer, et enfin g une fonction exit qui affiche un message puis fait exit(1) le message apparait mais je ne quitte pas mon prg....
Quelqu'un peu m aider...
En esperant avoir ete assez comprehensible

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
29
int	main(void)
{
  int	nb_read;
  char	buffer[BUFF_SIZE];
  int	pid;
  int	statut;
  char	**tab;
 
  tab = my_recup_path();
  my_putstr("$> ");
  while ((nb_read = read(0, buffer, BUFF_SIZE)))
    {
      buffer[nb_read - 1] = '\0';
      pid = fork();
      if (pid)
	{
	  wait(&statut);
	  my_putstr("$> ");
	}
      else
	{
	  execute_command(tab, buffer);
	  exit(1);
	}
    }
    free(buffer);
    free(tab);
  return (0);
}