Bonjour,
Désolé en ce moment je pose une question par jour, mais vos réponses me permettent de bien progresser !
J'ai donc réalisé un petit shell, je suis entrain de débugger le ';'
Quand j'entre par exemple "ls ; ls" j'obtiens un message d'erreur que je n'avais jusqu'à présent jamais rencontre:
Et le programme ne se coupe pas, je peux recommencer autant de fois que je veux, par contre, si je fais "cat Makefile ; ls" le "cat Makefile" va s'exécuter et le programme va couper sans rien dire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 minishell1->ls ; ls VOICI LE PATH: [/bin/ls] VOICI LA COMMANDE: [ls] Makefile builtins engine includes minishell tools VOICI LE PATH: [/bin/ls] VOICI LA COMMANDE: [ls] ls: fts_open: No such file or directory
Voici mon fichier execute.c
Si quelqu'un connait bien ce message d'erreur, merci de m'éclairer !
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 void execute(char **envp, t_path path, t_data *moove) { int status; pid_t pid; if (moove->cmd[0][0] == ';') builtin_coma(moove); my_putstr("\nVOICI LE PATH: ["); my_putstr(path.path); my_putstr("]\n"); my_putstr("VOICI LA COMMANDE: ["); my_putstr(moove->cmd[0]); my_putstr("]\n"); pid = fork(); if (pid) wait(&status); else { execve(path.path, moove->cmd, envp); kill(pid, SIGINT); } }
Partager