void ft_execmd(char const *cmd) { pid_t pid; char **arg; arg = ft_strsplit(cmd, ' '); if (check_cmd(arg)) { pid = fork(); if (pid == 0) { ft_exeinenv(arg); RED; ft_putstr_fd("ft_minishell2: ", 2); ft_putstr_fd(arg[0], 2); ft_putendl_fd(": command not found", 2); CANCEL; _exit(1); } else if (pid < 0) ft_putendl_fd("Fork Error", 2); else { waitpid(pid, 0, 0); ft_freetable(arg); } } }
int ft_execcmd(char **cmd, char **env) { int pid; if ((pid = fork()) == -1) { ft_puterror("42sh: fork fail, return -1.\n"); return (EXIT_FAILURE); } if (pid > 0) waitpid(pid, 0, 0); if (pid == 0) { execve(cmd[0], cmd, env); if (env) ft_exeinenv(cmd, env); ft_puterror("42sh: command not found: "); ft_puterror(cmd[0]); ft_puterror("\n"); _exit(1); } return (EXIT_SUCCESS); }