Man exec : quelques explications

Bonsoir.
Pour lancer une commande externe à un programme c, il semblerait que l’on puisse utiliser les fonctions exec. Cependant, j’ai un peu de mal avec le man en anglais… Quelles différences y a t-il entre execl, execlp, execle, evecv …
À ce que je crois avoir compris, les fonctions avec un “p” prennent en argument le chemin complet vers l’éxécutable désiré (le path ). Mais la deuxieme partie, elle correspond à quoi? les arguments passés à notre programme?
Merci pour les éclaircissements.

edit :
après re-re-relecture, je crois comprendre que dans les premiers cas (execl, execlp, execle ), les arguments suivants sont ceux passés au fichier que l’on veut éxécuter, dans les autres cas (execv() ), il s’agit des arguments passés au programme que l’on écrit. Mais comment récupérer ces arguments alors?
edit2 : est-ce bien avec execv(“commande”, argv); ?

Autre question, pourquoi tant de fonctions différentes, alors qu’elles semble très similaires?

Bonjour,

Les fonctions exec ne permettent pas de “lancer” un programme externe mais de remplacer le programme courant par le programme passé en argument dans le exec.

Il faut d’abord dupliquer le programme courant par un fork et remplacer le programme dupliqué par le programme à exécuter.

Ne pas oublier : le nom du programme est toujours le premier argument, l’argument 0.

Pour avoir traduction française de la page de man, il faut installer manpages-fr-dev.

Bon courage :wink:

Ah, c’est bien mieux en français! merci!

Plus lourd mais si tu veut pas te prendre la tête et si ta commande est fixe (ou que tu aime faire joujou avec les chaines de caractères en C) : system

Bon, avec tout ça, et quelques tests, je devrais m’en sortir. Merci!