Utilisation de execve

Résolu/Fermé
Utilisateur anonyme - Modifié par astrocurieux le 24/02/2015 à 14:22
 Utilisateur anonyme - 25 févr. 2015 à 10:58
Bonjour tout le monde ,
j'ai changer de pseudo lors de mon inscription ( anciennement glupidon)
ma question n'avais plus de rapport avec le contexte du titre de mon topique donc je la pose ici

je cherche a utiliser la fonction execve() mais particulièrement .


int find_path(char *str)
{
int i;
int j;
char *way;
char *name;

i = 0;
j = 8;
way = "/usr/bin/";
while (str[i] != '\0')
{
if (str[i] == ' ')
{
name[i] = '\0';
way[j] = '\0';
execute(way, str, name);
}
name[i] = str[i];
way[j] = str[i];
i++;
j++;
}
return (0);
}

int execute(char *way, char *str, char *name)
{
execve(way, name, envp);
return (0);
}


voila en gros je cherche a donner a execve() des paramètre sous forme de string et la évidement sa bug

c'est réellement impossible de cette maniérè ?

et en passant si vous pouviez également m'indiquer a quoi correspond le dernier paramètre ?
le man me dit
char *const envp[]

sa reste flou chez moi ...

merci de vos futures réponses !
a bientôt

1 réponse

Salut, char *const envp[] c'est pour définir des variables d'environnements, si t'en a pas besoin execv suffit.
Tu entres quoi dans str[] lorsque t'appel find_path ? c'est difficile de voir se que tu veux faire si on ignore à quoi ressemble l'entrée.
1
Utilisateur anonyme
25 févr. 2015 à 10:58
Bonjour JwTdd
ma fonction reçoit en paramètre ce qui viens d'être taper aux clavier !
et plus précisément une commande tel que ls , pwd ....
donc ma chaine contient par exemple "ls -l folder"
0