static void lunch_cmd(char *cmd, char **argv, t_data *data) { int i; char **paths; char *tmp; int ret; check_tild(argv, data); i = -1; tmp = NULL; paths = NULL; paths = ft_get_path(data); while (paths[++i] != '\0') { tmp = ft_strjoin(paths[i], cmd); ret = execve(tmp, argv, data->env); FREE_(tmp); if (ret > -1) exit(0); } ret = execve(cmd, argv, data->env); if (ret == -1) ft_putstr(E_MESS03); exit(0); }
/*Penser a gerer les erreurs pour argc (trop/pas assez d'arguments)*/ int main(int argc, char **argv, char **envp) { char *path; char **command; path = NULL; get_next_line(0, &path); command = /*fonction qui separe fichiers et commandes...*/; path = ft_get_path(envp, command[0]); command[0] = path; ft_do_fork(path, envp, command); return (0); }
static char *fdtm_get_path(const void *phandle, char *buf, int len) { return ft_get_path(&cxt, phandle, buf, len); }