diff options
Diffstat (limited to 'src/ft_exec.c')
-rw-r--r-- | src/ft_exec.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/ft_exec.c b/src/ft_exec.c index 555be96..408697d 100644 --- a/src/ft_exec.c +++ b/src/ft_exec.c @@ -12,6 +12,7 @@ /* ************************************************************************** */ #include <libft.h> +#include <stdlib.h> #include <minishell.h> #include <unistd.h> @@ -23,13 +24,16 @@ ft_exec(char **com) i = 0; while (com[i]) i++; - if (!ft_strncmp(com[0], "./", 2)) + if (fork() == 0) { - if ((execve(com[0] + 2, com, NULL)) != 0) - return (ft_error(com[0], 127)); + if (!ft_strncmp(com[0], "./", 2)) + { + if ((execve(com[0] + 2, com, NULL)) != 0) + return (ft_error(com[0], 127)); + } + else + if ((execve(com[0], com, NULL)) != 0) + return (ft_error(com[0], 127)); } - else - if ((execve(com[0], com, NULL)) != 0) - return (ft_error(com[0], 127)); return (0); } |