Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
execl, execlp, execle, execv, execvp - Executer un fichier
SYNOPSIS
#include <unistd.h>
extern char **environ;
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg,
..., char * const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
DESCRIPTION
La famille des fonctions exec() remplace l'image du processus en cours
par une nouvelle image du processus. Les fonctions decrites dans cette
page sont en realite des frontaux pour execve(2) (consultez la page de
manuel de execve(2) pour plus de details sur le remplacement de l'image
du processus en cours).
L'argument initial de toutes ces fonctions est le chemin d'acces du
fichier a executer.
Les arguments const char *arg ainsi que les points de suspension des
fonctions execl(), execlp(), et execle() peuvent etre vues comme arg0,
arg1, ..., argn. Ensemble, ils decrivent une liste d'un ou plusieurs
pointeurs sur des chaines de caracteres terminees par des caracteres
nuls, qui constituent les arguments disponibles pour le programme a
executer. Par convention, le premier argument doit pointer sur le nom
du fichier associe au programme a executer. La liste des arguments doit
se terminer par un pointeur NULL, et puisque ce sont des fonctions
variadiques, ce pointeur doit etre transtype avec (char *) NULL.
Les fonctions execv() et execvp() utilisent un tableau de pointeurs sur
des chaines de caracteres terminees par des caracteres nuls, qui
constituent les arguments disponibles pour le programme a executer. Par
convention, le premier argument doit pointer sur le nom du fichier
associe au programme a executer. Le tableau de pointeurs doit se
terminer par un pointeur NULL.
La fonction execle() peut egalement indiquer l'environnement du
processus a executer en faisant suivre le pointeur NULL qui termine la
liste d'arguments, ou le pointeur du tableau argv par un parametre
supplementaire. Ce parametre additionnel est un tableau de pointeurs
sur des chaines de caracteres terminees par des caracteres nuls, qui
doit se terminer par un pointeur NULL. Les autres fonctions fournissent
au nouveau processus l'environnement constitue par la variable externe
environ.
S'emantique particuli`ere pour execlp() et execvp()
Les fonctions execlp() et execvp() dupliqueront les actions de
l'interpreteur de commandes dans la recherche du fichier executable si
le nom fourni ne contient pas de barre oblique << / >>. Le chemin de
recherche est specifie dans la variable d'environnement PATH. Si cette
variable n'est pas definie, le chemin par defaut sera
<< /bin:/usr/bin: >>. De plus, certaines erreurs sont traitees de
maniere specifique.
Si l'acces au fichier est refuse (execve(2) renvoie EACCES), ces
fonctions continueront a parcourir le reste du chemin de recherche. Si
aucun fichier n'est trouve, elles reviendront, et errno sera defini a
EACCES.
Si l'en-tete d'un fichier n'est pas reconnu (execve(2) renvoie
ENOEXEC), ces fonctions executeront un interpreteur de commandes
(/bin/sh) avec le chemin d'acces au fichier en tant que premier
argument. Si ceci echoue, aucune recherche supplementaire n'est
effectuee.
VALEUR RENVOY'EE
Si l'une des fonctions exec() revient, c'est qu'une erreur a eu lieu.
La valeur de retour est -1, et errno contient le code d'erreur.
ERREURS
Toutes ces fonctions peuvent echouer et definir errno sur n'importe
quelle erreur decrite dans la fonction execve(2).
CONFORMIT'E
POSIX.1-2001.
NOTES
Sur certains systemes, le chemin de recherche par defaut (employe si
l'environnement ne contient pas la variable PATH) contient le
repertoire courant a la suite de /bin et /usr/bin, afin d'eviter les
chevaux de Troie. Linux utilise encore le repertoire courant en premier
dans ce chemin de recherche par defaut.
Le comportement de execlp() et execvp() lorsqu'une erreur se produit
pendant l'execution d'un programme est une pratique historique mais n'a
traditionnellement jamais ete documente, ni specifie dans le standard
POSIX. Lorsque ETXTBSY est rencontre, BSD (et peut-etre d'autres
systemes) endorment le processus appelant puis reitere l'operation.
Linux considere cette situation comme une erreur grave, et revient
immediatement.
Habituellement, les fonctions execlp() et execvp() ignoraient toutes
les erreurs sauf celles decrites ci-dessus, ENOMEM et E2BIG. Desormais,
elles reviennent a l'appelant si une autre erreur que celles-ci se
produit.
VOIR AUSSI
sh(1), execve(2), fork(2), ptrace(2), fexecve(3), environ(7)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Florentin
Duneau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
GNU 22 fevrier 2009 EXEC(3)