diff --git a/src/exec/exec.c b/src/exec/exec.c index 87eac5d..5d922e8 100644 --- a/src/exec/exec.c +++ b/src/exec/exec.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -21,6 +22,10 @@ int execute(cmd** input, char** env) // on tue l'enfant (l'enfant devient la commande entrée par l'utilisateur) exitcode = execve(input[i]->executable, input[i]->args, env); } + else + { + waitpid(pid, &exitcode, 0); + } } return exitcode; } @@ -66,5 +71,3 @@ int builtin_execute(cmd** input, char** env) } return exitcode; } - - diff --git a/src/exec/exec.h b/src/exec/exec.h new file mode 100644 index 0000000..7996261 --- /dev/null +++ b/src/exec/exec.h @@ -0,0 +1,4 @@ +#pragma once + +int execute(cmd** input, char** env); +int builtin_execute(cmd** input, char** env); diff --git a/src/main.c b/src/main.c index b4aba98..9141161 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,8 @@ #include "./env/env.h" #include "./input/input.h" #include +#include "cmd/cmd.h" +#include "./exec/exec.h" int main(int ac, char **av, char **env_str) { @@ -20,4 +22,5 @@ int main(int ac, char **av, char **env_str) } lst_clear(env, &env_del); return (0); + }