Dans la famille des fonctions exec*(), celles avec un « l » prennent une liste d'arguments (terminée par un NULL) et celles avec un « v » un tableau.
Donc, remplaces ton execv() par un execl(), voire un execle() ;
Maintenant, tu souhaites lancer ton programme sans passer par un shell, et pourtant, ... tu lances un /bin/sh ! Mais pourquoi donc ?
La famille exec*() prend en premier paramètre le nom d'un fichier à exécuter.
Pour les détails, voir man 3 exec
Mais c'est du C, du vrai, pas du C++. En C++, je ne sais pas, il y a peut-être des front-end disponibles à ces fonctions.
# execle(...);
Posté par G. R. . En réponse au message Lancer un programme, comment ?. Évalué à 3.
Dans la famille des fonctions exec*(), celles avec un « l » prennent une liste d'arguments (terminée par un NULL) et celles avec un « v » un tableau.
Donc, remplaces ton execv() par un execl(), voire un execle() ;
Maintenant, tu souhaites lancer ton programme sans passer par un shell, et pourtant, ... tu lances un /bin/sh ! Mais pourquoi donc ?
La famille exec*() prend en premier paramètre le nom d'un fichier à exécuter.
Pour les détails, voir man 3 exec
Mais c'est du C, du vrai, pas du C++. En C++, je ne sais pas, il y a peut-être des front-end disponibles à ces fonctions.