Ce sont toutes les versions d'exec qui peuvent être utilisées en C (et C++)
execl
execle
execlp
execv
execve
execvp
Quelle est la différence entre eux? Comment savez-vous lequel utiliser?
Les différences sont des combinaisons de:
L vs V: si vous voulez passer les paramètres au programme exécuté comme
execl()
, execle()
, execlp()
et execlpe()
execv()
, execve()
, execvp()
, et execvpe()
Le format de tableau est utile lorsque le nombre de paramètres à envoyer au processus exécuté est variable - comme cela n'est pas connu à l'avance, vous ne pouvez donc pas mettre un nombre fixe de paramètres dans un appel de fonction.
E : Les versions avec un 'e' à la fin vous permettent en outre de passer un tableau de char * qui est un ensemble de chaînes ajoutées à l'environnement des processus générés avant le lancement du programme exécuté. Encore une autre façon de passer des paramètres, vraiment.
P : Les versions avec 'p' là-dedans utilisent la variable de chemin d'environnement pour rechercher le fichier exécutable nommé à exécuter. Les versions sans le "p" nécessitent un chemin de fichier absolu ou relatif à ajouter au nom de fichier de l'exécutable s'il ne se trouve pas dans le répertoire de travail actuel.
Opengroup est l'une des meilleures références générales pour les fonctions de base c/c ++.
Les documents pour exec * sont ici: http://pubs.opengroup.org/onlinepubs/009695399/functions/environ.html