diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ft_sfx_trap.c | 21 |
1 files 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 <libft.h> #include <cub3d.h> #include <unistd.h> #include <stdint.h> +#include <sys/wait.h> 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); + } } |