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> ».