summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-05-11 17:10:53 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-05-11 17:10:53 +0200
commit3a7b348c39b2b28b5d530477b687182000cc70ed (patch)
treee31fcc32121a31b05a2a503dd7be28b8736445d5 /src
parentTryna pipe(2) (diff)
download42-minishell-3a7b348c39b2b28b5d530477b687182000cc70ed.tar.gz
42-minishell-3a7b348c39b2b28b5d530477b687182000cc70ed.tar.bz2
42-minishell-3a7b348c39b2b28b5d530477b687182000cc70ed.tar.xz
42-minishell-3a7b348c39b2b28b5d530477b687182000cc70ed.tar.zst
42-minishell-3a7b348c39b2b28b5d530477b687182000cc70ed.zip
It's not pipin'
Diffstat (limited to 'src')
-rw-r--r--src/ft_e_externs_pipes.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/ft_e_externs_pipes.c b/src/ft_e_externs_pipes.c
index a54e565..773905d 100644
--- a/src/ft_e_externs_pipes.c
+++ b/src/ft_e_externs_pipes.c
@@ -38,24 +38,24 @@ static void
t_msh *msh)
{
/* TODO: norme */
- pid_t pid;
+ pid_t pid[2];
int32_t pipefd[2];
int32_t status;
pipe(pipefd);
- if ((pid = fork()) == 0)
+ if ((pid[0] = fork()) == 0)
{
close(pipefd[0]);
dup2(pipefd[1], STDOUT_FILENO);
ft_e_extern_child(fullpath[0], ptr->one, msh);
}
- else if (pid < 0)
+ else if (pid[0] < 0)
{
/* TODO: handle fork failed */
}
else
{
- if ((pid = fork()) == 0)
+ if ((pid[1] = fork()) == 0)
{
close(pipefd[1]);
dup2(pipefd[0], STDIN_FILENO);
@@ -65,9 +65,9 @@ static void
{
close(pipefd[0]);
close(pipefd[1]);
- waitpid(-1, &status, 0);
+ waitpid(pid[1], &status, 0);
}
- waitpid(-1, &status, 0);
+ waitpid(pid[0], &status, 0);
msh->ret = WEXITSTATUS(status);
}
}