diff --git a/src/executing/common/do_waitpid.c b/src/executing/common/do_waitpid.c index 1df64d6..6746049 100644 --- a/src/executing/common/do_waitpid.c +++ b/src/executing/common/do_waitpid.c @@ -6,7 +6,7 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/04 19:55:22 by khais #+# #+# */ -/* Updated: 2025/04/04 19:55:59 by khais ### ########.fr */ +/* Updated: 2025/04/28 12:29:50 by khais ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,12 +14,18 @@ #include "libft.h" #include #include +#include void do_waitpid(t_minishell *app, int pid) { int wstatus; - waitpid(pid, &wstatus, 0); + wstatus = 0; + if (waitpid(pid, &wstatus, 0) == -1) + { + app->last_return_value = 255; + perror("waitpid"); + } if (WIFEXITED(wstatus)) app->last_return_value = WEXITSTATUS(wstatus); if (WIFSIGNALED(wstatus)) diff --git a/src/executing/group_cmd/group_cmd_execute.c b/src/executing/group_cmd/group_cmd_execute.c index 9de9a91..c7e7710 100644 --- a/src/executing/group_cmd/group_cmd_execute.c +++ b/src/executing/group_cmd/group_cmd_execute.c @@ -6,7 +6,7 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/04 19:50:42 by khais #+# #+# */ -/* Updated: 2025/04/16 16:45:28 by khais ### ########.fr */ +/* Updated: 2025/04/28 12:29:34 by khais ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,7 +22,8 @@ void group_cmd_execute(t_group_cmd *cmd, t_minishell *app, bool should_exit) pid = fork(); if (pid == 0) cmd_execute(cmd->cmd, app, true); - do_waitpid(app, pid); + else + do_waitpid(app, pid); if (should_exit) exit(app->last_return_value); }