Example #1
0
File: shell.c Project: mrachid/SH2
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);
		}
	}
}
Example #2
0
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);
}