Bonjour,
j'utilise un execvp dans un programme pour executer une commande bash : où c-> un tableau de char *

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
int exec_commande(commande * c) {
  int ret=fork();
  switch (ret) {
  case 0:
    execvp( (c->nom)[0], c->nom );
    break;
  default:
    wait(NULL);
    break;
    }
  return 0;
}
Le programme fonctionne parfaitement bien lorsque c->nom contient un nombre pair d'argument (par exemple {"echo","123"} ou {"ls","-l"})
Mais le execvp n'execute pas la commande lorque le nombre d'argument de c->nom est imapair (par exemple {"echo","123","456"})
Je rage sur mon code qui est l'un des plus propre que j'ai eu à faire dans ma courte vie. J'espère que vous pourrez m'aider.