From 08d582c67c8ed4325325feb5ae29d64b7b46b958 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Fri, 13 Mar 2020 18:35:35 +0100 Subject: Fuck fork() --- src/ft_sfx_trap.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/ft_sfx_trap.c b/src/ft_sfx_trap.c index cf5dafa..dc998da 100644 --- a/src/ft_sfx_trap.c +++ b/src/ft_sfx_trap.c @@ -10,9 +10,11 @@ /* */ /* ************************************************************************** */ +#include #include #include #include +#include static void ft_sfx_pain(t_cub *cl) @@ -25,7 +27,12 @@ static void if (ref % 2) { cl->sfx.pain_pid = fork(); - if (cl->sfx.pain_pid == 0) + if (cl->sfx.pain_pid < 0) + { + ft_printf("Pain fork error\n"); + return ; + } + else if (cl->sfx.pain_pid == 0) { if (ref % 3) execve(*(cl->sfx.pain_one + 0), cl->sfx.pain_one, cl->envp); @@ -39,7 +46,15 @@ void ft_sfx_trap(t_cub *cl) { cl->sfx.trap_pid = fork(); - if (cl->sfx.trap_pid == 0) + if (cl->sfx.trap_pid < 0) + { + ft_printf("Trap fork error\n"); + return ; + } + else if (cl->sfx.trap_pid == 0) execve(*(cl->sfx.trap + 0), cl->sfx.trap, cl->envp); - ft_sfx_pain(cl); + else + { + ft_sfx_pain(cl); + } } -- cgit v1.2.3