/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* exec_cmd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: mmoussou infile, STDIN_FILENO); if (cmd->infile != STDIN_FILENO) close(cmd->infile); if (exec.status == -1) exit(-1); exec.status = dup2(cmd->outfile, STDOUT_FILENO); if (cmd->outfile != STDOUT_FILENO) close(cmd->outfile); if (exec.pipe_fd[0] != -1) close(exec.pipe_fd[0]); if (exec.pipe_fd[0] != -1) close(exec.pipe_fd[1]); if (exec.status != -1) exec_cmd(cmd->cmd, cmd->argv, env, env_t); } int exec_single_cmd_execution(t_cmd *cmd, char **env, t_env *env_t, t_exec exec) { int fork_pid; if (is_in_builtins(cmd->cmd) > 0 && is_in_builtins(cmd->cmd) < 5) __fork_single_cmd(cmd, env, env_t, exec); if (is_in_builtins(cmd->cmd) > 0 && is_in_builtins(cmd->cmd) < 5) return (0); fork_pid = fork(); if (!fork_pid) { __fork_single_cmd(cmd, env, env_t, exec); free_exec(env_t, env); exit(get_exit_code(-1)); } return (fork_pid); }