summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-05-11 17:08:01 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-05-11 17:08:01 +0200
commit2fe6c1f9791b7bb3de02fde7ba31a6f0534edbc6 (patch)
tree1ba5f544f24362b9408034a25f2aed4b4d6af845
parentNew files (diff)
download42-minishell-2fe6c1f9791b7bb3de02fde7ba31a6f0534edbc6.tar.gz
42-minishell-2fe6c1f9791b7bb3de02fde7ba31a6f0534edbc6.tar.bz2
42-minishell-2fe6c1f9791b7bb3de02fde7ba31a6f0534edbc6.tar.xz
42-minishell-2fe6c1f9791b7bb3de02fde7ba31a6f0534edbc6.tar.zst
42-minishell-2fe6c1f9791b7bb3de02fde7ba31a6f0534edbc6.zip
Tryna pipe(2)
-rw-r--r--src/ft_e_externs_pipes.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/ft_e_externs_pipes.c b/src/ft_e_externs_pipes.c
index d4d648d..a54e565 100644
--- a/src/ft_e_externs_pipes.c
+++ b/src/ft_e_externs_pipes.c
@@ -53,22 +53,23 @@ static void
{
/* TODO: handle fork failed */
}
- if ((pid = fork()) == 0)
+ else
{
- close(pipefd[1]);
- dup2(pipefd[0], STDIN_FILENO);
- ft_e_extern_child(fullpath[1], ptr->next->one, msh);
- }
- /* else */
- /* { */
- close(pipefd[0]);
- close(pipefd[1]);
- while (wait(&status) != pid)
- ;
- while (wait(&status) != pid)
- ;
+ if ((pid = fork()) == 0)
+ {
+ close(pipefd[1]);
+ dup2(pipefd[0], STDIN_FILENO);
+ ft_e_extern_child(fullpath[1], ptr->next->one, msh);
+ }
+ else
+ {
+ close(pipefd[0]);
+ close(pipefd[1]);
+ waitpid(-1, &status, 0);
+ }
+ waitpid(-1, &status, 0);
msh->ret = WEXITSTATUS(status);
- /* } */
+ }
}
void