Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

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)