.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" %%%LICENSE_END .\" .\" @(#)exec.3 6.4 (Berkeley) 4/19/91 .\" .\" Converted for Linux, Mon Nov 29 11:12:48 1993, faith@cs.unc.edu .\" Updated more for Linux, Tue Jul 15 11:54:18 1997, pacman@cqc.com .\" Modified, 24 Jun 2004, Michael Kerrisk .\" Added note on casting NULL .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH EXEC 3 "2 août 2019" GNU "Manuel du programmeur Linux" .SH NOM execl, execlp, execle, execv, execvp, execvpe \- Exécuter un fichier .SH SYNOPSIS .nf \fB#include \fP .PP \fBextern char **environ;\fP .PP \fBint execl(const char *\fP\fIchemin\fP\fB, const char *\fP\fIarg\fP\fB, ...\fP \fB/* (char *) NULL */);\fP \fBint execlp(const char *\fP\fIfichier\fP\fB, const char *\fP\fIarg\fP\fB, ...\fP \fB/* (char *) NULL */);\fP \fBint execle(const char *\fP\fIchemin\fP\fB, const char *\fP\fIarg\fP\fB, ...\fP \fB /*, (char *) NULL, char *const \fP\fIenvp\fP\fB[] */);\fP \fBint execv(const char *\fP\fIchemin\fP\fB, char *const \fP\fIargv\fP\fB[]);\fP \fBint execvp(const char *\fP\fIfichier\fP\fB, char *const \fP\fIargv\fP\fB[]);\fP \fBint execvpe(const char *\fP\fIfichier\fP\fB, char *const \fP\fIargv\fP\fB[],\fP \fB char *const \fP\fIenvp\fP\fB[]);\fP .fi .PP .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7))\ : .RE .PP \fBexecvpe\fP()\ : _GNU_SOURCE .SH DESCRIPTION La famille des fonctions \fBexec\fP() remplace l'image du processus en cours par l'image d'un nouveau processus. Les fonctions décrites dans cette page de manuel sont en réalité des frontaux pour \fBexecve\fP(2) (consultez la page de manuel de \fBexecve\fP(2) pour plus de détails sur le remplacement de l'image du processus en cours). .PP Le premier argument de toutes ces fonctions est le nom du fichier à exécuter. .PP .\" Les fonctions peuvent être regroupées en se basant sur les lettres qui suivent le préfixe "exec". .SS "l \- execl(), execlp(), execle()" Les arguments \fIconst char\ *arg\fP et les points de suspension qui suivent peuvent être vus comme \fIarg0\fP, \fIarg1\fP, \&..., \fIargn\fP. Ensemble, ils décrivent une liste d'un ou plusieurs pointeurs sur des chaînes de caractères terminées par des caractères de code 0 qui représentent la liste des 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 \fIdoit\fP se terminer par un pointeur NULL, et puisque ce sont des fonctions variadiques, ce pointeur doit être transtypé avec \fI(char\ *) NULL\fP. .PP .\" A la différence des fonctions 'l', les fonctions 'v' (voir ci\-dessous) spécifient les arguments de ligne de commande du programme à exécuter sous la forme d'un tableau de pointeurs. .SS "v \- execv(), execvp(), execvpe()" L'argument \fIchar\ *const argv[]\fP est un tableau de pointeurs sur des chaînes de caractères terminées par un caractère de code 0 et représente la liste des arguments disponibles pour le nouveau programme . Par convention, le premier argument doit pointer sur le nom du fichier associé au programme à exécuter. Le tableau de pointeurs \fIdoit\fP se terminer par un pointeur NULL. .SS "e \- execle(), execvpe()" L'environnement de l'appelant est spécifié à l'aide de l'argument \fIenvp\fP. L'argument \fIenvp\fP est un tableau de pointeurs sur des chaînes de caractères terminées par des caractères de code 0, et qui \fIdoit\fP se terminer par un pointeur NULL. .PP Toutes les autres fonctions \fBexec\fP() (qui ne possèdent pas le suffixe 'e') extraient l'environnement pour l'image du nouveau processus depuis la variable externe \fIenviron\fP dans le processus appelant. .SS "p \- execlp(), execvp(), execvpe()" Ces fonctions 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 \fBPATH\fP. Si cette variable n'est pas définie, la liste de chemins par défaut correspondra à une liste contenant les répertoires renvoyés par \fIconfstr(_CS_PATH)\fP (qui renvoie en général la valeur "/bin:/usr/bin"), et éventuellement le répertoire courant\ ; voir NOTES pour plus de détails. .PP Si le nom du fichier spécifié inclut une barre oblique, alors \fBPATH\fP est ignoré et le fichier dont le chemin est fourni est exécuté. .PP De plus, certaines erreurs sont traitées de manière spécifique. .PP Si l'accès au fichier est refusé (\fBexecve\fP(2) renvoie alors une erreur \fBEACCES\fP), ces fonctions continueront à parcourir le reste du chemin de recherche. Si aucun fichier n'est trouvé, elles se termineront en renvoyant \fIerrno\fP défini à \fBEACCES\fP. .PP Si l'en\-tête d'un fichier n'est pas reconnu (\fBexecve\fP(2) renvoie alors une erreur \fBENOEXEC\fP), ces fonctions exécuteront l'interpréteur de commandes (\fI/bin/sh\fP) avec le chemin d'accès au fichier en tant que premier argument. Si cette tentative échoue, aucune recherche supplémentaire ne sera effectuée. .PP Toutes les autres fonctions \fBexec\fP() (qui ne comportent pas le suffixe 'p') ont pour premier argument un chemin (relatif ou absolu) qui spécifie le programme à exécuter. .SH "VALEUR RENVOYÉE" Les fonctions \fBexec\fP() ne s'interrompent que si une erreur s'est produite. La valeur renvoyée est \fB\-1\fP, et \fIerrno\fP contient le code d'erreur. .SH ERREURS Toutes ces fonctions peuvent échouer et définir \fIerrno\fP à n'importe quelle erreur décrite dans \fBexecve\fP(2). .SH VERSIONS La fonction \fBexecvpe\fP() a été introduite dans la glibc\ 2.11. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbw29 lb lb l l l. Interface Attribut Valeur T{ \fBexecl\fP(), \fBexecle\fP(), \fBexecv\fP() T} Sécurité des threads MT\-Safe T{ \fBexeclp\fP(), \fBexecvp\fP(), \fBexecvpe\fP() T} Sécurité des threads MT\-Safe env .TE .SH CONFORMITÉ POSIX.1\-2001, POSIX.1\-2008. .PP La fonction \fBexecvpe\fP() est une extension GNU. .SH NOTES .\" glibc commit 1eb8930608705702d5746e5491bab4e4429fcb83 Le chemin de recherche par défaut (utilisé lorsque l'environnement ne contient pas la variable \fBPATH\fP) varie en fonction du système utilisé. Il contient en général \fI/bin\fP et \fI/usr/bin\fP (dans cet ordre) et parfois aussi le répertoire courant. Sur certains systèmes et à titre de mesure anti\-cheval de Troie, le répertoire courant est inclus après \fI/bin\fP et \fI/usr/bin\fP. L'implémentation de la glibc quant à elle, a longtemps conservé le chemin de recherche par défaut traditionnel où le répertoire courant se situe en tête de liste. Cependant, suite à une réécriture du code lors du développement de la version 2.24 de la glibc, le répertoire courant a été proprement éjecté du chemin de recherche. Ce changement de comportement accidentel étant considéré cependant comme relativement bénéfique, il n'y aura pas de retour en arrière. .PP Le comportement de \fBexeclp\fP() et \fBexecvp\fP() lorsqu'une erreur se produit pendant l'exécution d'un programme est un comportement historique mais n'a traditionnellement jamais été documenté, ni spécifié dans la norme POSIX. Lorsque \fBETXTBSY\fP est rencontré, BSD (et peut\-être d'autres systèmes) endorment le processus appelant puis réitère l'opération. Sous Linux, cette situation est considérée comme une erreur grave, et la commande se termine immédiatement. .PP Traditionnellement, les fonctions \fBexeclp\fP() et \fBexecvp\fP() ignoraient toutes les erreurs sauf celles décrites ci\-dessus, \fBENOMEM\fP et \fBE2BIG\fP à la survenue desquelles elles se terminaient. Désormais, elles se terminent si une autre erreur que celles\-ci se produit. .SH BOGUES .\" https://sourceware.org/bugzilla/show_bug.cgi?id=19534 .\" Dans les versions de la glibc antérieures à 2.24, \fBexecl\fP() et \fBexecle\fP() utilisaient \fBrealloc\fP(3) en interne et n'étaient donc pas async\-signal\-safe, en violation des spécifications de POSIX.1. La version 2.24 de la glibc corrige ce problème. .SS "Détails spécifiques à l'architecture" Sous sparc et sparc64, \fBexecv\fP() est fournie en tant qu'appel système par le noyau (avec le prototype décrit ci\-dessus) à titre de compatibilité avec SunOS. Sous ces architectures, la fonction qui sert de frontal à \fBexecv\fP() \fIn'utilise pas\fP cette fonction. .SH "VOIR AUSSI" \fBsh\fP(1), \fBexecve\fP(2), \fBexecveat\fP(2), \fBfork\fP(2), \fBptrace\fP(2), \fBfexecve\fP(3), \fBsystem\fP(3), \fBenviron\fP(7) .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Lucien Gentis . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .