Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       execl, execlp, execle, execv, execvp, execvpe - Exécuter 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[]);
       int execvpe(const char *file, char *const argv[],
        char *const envp[]);

   Exigences  de  macros  de  test de fonctionnalités pour la glibc (consultez
   feature_test_macros(7)) :

       execvpe() : _GNU_SOURCE

DESCRIPTION

       La famille des fonctions exec() remplace l'image du processus en  cours
       par  une nouvelle image du processus. Les fonctions décrites dans cette
       page sont en réalité des frontaux pour execve(2) (consultez la page  de
       manuel de execve(2) pour plus de détails sur le remplacement de l'image
       du processus en cours).

       L'argument initial de toutes ces fonctions est  le  chemin  d'accès  du
       fichier à exécuter.

       Les  arguments  const  char *arg ainsi que les points de suspension des
       fonctions execl(), execlp(), et execle() peuvent être vues comme  arg0,
       arg1,  ...,  argn.  Ensemble, ils décrivent une liste d'un ou plusieurs
       pointeurs sur des chaînes de caractères terminées  par  des  caractères
       nuls,  qui  constituent  les  arguments disponibles pour le programme à
       exécuter. Par convention, le premier argument doit pointer sur  le  nom
       du fichier associé au programme à exécuter. La liste des arguments doit
       se terminer par un pointeur NULL, et  puisque  ce  sont  des  fonctions
       variadiques, ce pointeur doit être transtypé avec (char *) NULL.

       Les  fonctions  execv(),  execvp() et execvpe() utilisent un tableau de
       pointeurs sur des chaînes de caractères terminées  par  des  caractères
       nuls,  qui  constituent  les  arguments disponibles pour le programme à
       exécuter. Par convention, le premier argument doit pointer sur  le  nom
       du  fichier  associé  au  programme à exécuter. Le tableau de pointeurs
       doit se terminer par un pointeur NULL.

       Les fonctions execle() et execvpe() permettent à l'appelant  d'indiquer
       l'environnement  du  processus  à  exécuter  via  le paramètre envp. Ce
       paramètre est un tableau de pointeurs sur  des  chaînes  de  caractères
       terminées par des caractères nuls, qui doit se terminer par un pointeur
       NULL.  Les  autres   fonctions   fournissent   au   nouveau   processus
       l'environnement  constitué par la variable externe environ du processus
       appelant.

   Sémantique particulière pour execlp() et execvp()
       Les fonctions execlp(), execvp() et execvpe() dupliqueront les  actions
       de  l'interpréteur de commandes dans la recherche du fichier exécutable
       si le nom fourni ne contient pas de barre oblique « / ». Le fichier est
       recherché  dans  la  liste de répertoires, séparés par des deux-points,
       spécifiée dans la variable  d'environnement  PATH.  Si  cette  variable
       n'est  pas  définie,  le  chemin  par défaut sera le répertoire actuel,
       suivi de la liste des répertoires renvoyée par  confstr(_CS_PATH)  (cet
       appel à confstr(3) renvoie habituellement « /bin:/usr/bin: »).

       Si  le  nom du fichier indiqué inclut une barre oblique, alors PATH est
       ignoré et le fichier dont le chemin est fourni est exécuté.

       De plus, certaines erreurs sont traitées de manière spécifique.

       Si l'accès au  fichier  est  refusé  (execve(2)  renvoie  EACCES),  ces
       fonctions  continueront à parcourir le reste du chemin de recherche. Si
       aucun fichier n'est trouvé, elles reviendront, et errno sera  défini  à
       EACCES.

       Si   l'en-tête  d'un  fichier  n'est  pas  reconnu  (execve(2)  renvoie
       ENOEXEC),  ces  fonctions  exécuteront  un  interpréteur  de  commandes
       (/bin/sh)  avec  le  chemin  d'accès  au  fichier  en  tant que premier
       argument.  Si  ceci  échoue,  aucune  recherche  supplémentaire   n'est
       effectuée.

VALEUR RENVOYÉE

       Une  sortie  des  fonctions exec() n'intervient que si une erreur s'est
       produite. La valeur de  retour  est  -1,  et  errno  contient  le  code
       d'erreur.

ERREURS

       Toutes  ces  fonctions  peuvent  échouer  et  définir errno à n'importe
       quelle erreur décrite dans execve(2).

VERSIONS

       La fonction execvpe() a été introduite dans la glibc 2.11.

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008.

       La fonction execvpe() est une extension GNU.

NOTES

       Sur certains systèmes, le chemin de recherche par  défaut  (employé  si
       l'environnement   ne   contient  pas  la  variable  PATH)  contient  le
       répertoire courant à la suite de /bin et /usr/bin,  afin  d'éviter  les
       chevaux de Troie. Linux utilise encore le répertoire courant en premier
       dans ce chemin de recherche par défaut.

       Le comportement de execlp() et execvp() lorsqu'une  erreur  se  produit
       pendant l'exécution d'un programme est une pratique historique mais n'a
       traditionnellement jamais été documenté, ni spécifié dans  le  standard
       POSIX.  Lorsque  ETXTBSY  est  rencontré,  BSD  (et  peut-être d'autres
       systèmes) endorment le processus  appelant  puis  réitère  l'opération.
       Linux  considère  cette  situation  comme  une erreur grave, et revient
       immédiatement.

       Habituellement, les fonctions execlp() et  execvp()  ignoraient  toutes
       les erreurs sauf celles décrites ci-dessus, ENOMEM et E2BIG. Désormais,
       elles reviennent à 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.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   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'équipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».