Provided by: manpages-fr-dev_3.57d1p1-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 à l’aide du 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,  indiqué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  la  norme  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.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <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> ».