1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
|
.\" Copyright (c) 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" 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.
.\"
.\" @(#)exec.3 6.4 (Berkeley) 4/19/91
.\"
.\" Converted for Linux, Mon Nov 29 11:12:48 1993, faith@cs.unc.edu
.\"
.\"
.\" Traduction 23/10/1996 par Christophe Blaess (ccb@club-internet.fr)
.\" Mise a jour 19/07/1997
.\" Mise jour 04/06/2001 - LDP-man-pages-1.36
.TH EXEC 3 "4 Juin 2001" BSD "Manuel du programmeur Linux"
.SH NOM
execl, execlp, execle, execv, execvp \- Excuter un programme.
.SH SYNOPSIS
.B #include <unistd.h>
.sp
.B extern char **environ;
.sp
.BI "int execl (const char *" path ", const char *" arg ", ...);
.br
.BI "int execlp (const char *" file ", const char *" arg ", ...);
.br
.BI "int execle (const char *" path ", const char *" arg
.BI ", ..., char * const " envp "[]);"
.br
.BI "int execv (const char *" path ", char *const " argv "[]);"
.br
.BI "int execvp (const char *" file ", char *const " argv "[]);"
.SH DESCRIPTION
La famille de fonctions
.B exec
remplace l'image mmoire du processus en cours par un nouveau processus.
Les fonctions dcrites dans cette page sont en ralite des frontaux pour
l'appel systme
.BR execve (2).
(Voir la page de
.B execve
pour des informations dtailles sur le remplacement du processus en cours.)
.PP
L'argument initial de toutes ces fonctions est le chemin d'accs du fichier
excuter.
.PP
Les arguments
.I "const char *arg"
ainsi que les points de suspension des fonctions
.BR execl ,
.BR execlp ,
et
.B execle
peuvent tre vues comme des
.IR arg0 ,
.IR arg1 ,
\&...,
.IR argn .
Ensemble ils dcrivent une liste d'un ou plusieurs pointeurs sur des
chanes de caractres termines par des caractres nuls, qui constituent les
arguments disponibles pour le programme excuter.
Par convention le premier argument doit pointer sur le nom du fichier associ
au programme excuter. La liste des arguments
.I doit
se terminer par un pointeur
.BR NULL .
.PP
Les fonctions
.B execv
et
.B execvp
utilisent un tableau de pointeurs sur des chanes de caractres termines
par des caractres nuls, qui constituent les
arguments disponibles pour le programme excuter.
Par convention le premier argument doit pointer sur le nom du fichier associ
au programme excuter. Le tableau de pointeur
.I doit
se terminer par un pointeur
.BR NULL .
.PP
La fonction
.B execle
peut galement indiquer l'environnement du processus excuter en faisant
suivre le pointeur
.B NULL
qui termine la liste d'arguments, ou le pointeur
.B NULL
de la table par un paramtre supplmentaire.
Ce paramtre est un tableau de pointeurs sur des chanes de caractres termines
par des caractres nuls, qui
.I doit
se terminer par un pointeur
.BR NULL .
Les autres fonctions fournissent au nouveau processus l'environnement
constitu par la variable externe
.IR environ .
.PP
Certaines de ces fonctions ont une smantique spcifique.
.PP
Les fonctions
.B execlp
et
.B execvp
agiront comme le shell dans la recherche du fichier excutable si
le nom fourni ne contient pas de slash (/). Le chemin de recherche
est spcifi dans la variable d'environnement
.BR PATH .
Si cette variable n'est pas dfinie, le chemin par dfaut sera
``/bin:/usr/bin:''. De plus certaines
erreurs sont traites de manire spcifique.
.PP
Si la permission d'accs au fichier est refuse
.RB ( execve
renvoie
.BR EACCES ),
ces fonctions continueront parcourir le reste du chemin de recherche. Si
aucun fichier n'est trouv, elle reviendront, et
.I errno
contiendra le code d'erreur
.BR EACCES .
.PP
Si l'en-tte d'un fichier n'est pas reconnu
.RB ( execve
renvoie
.BR ENOEXEC ),
ces fonctions excuteront un shell avec le chemin d'accs au fichier
en tant que premier argument. Si ceci choue, aucune recherche supplmentaire
n'est effectue.
.SH "VALEUR RENVOYE"
Si l'une quelconque des fonctions
.B exec
revient l'appelant, c'est qu'une erreur a eu lieu. La valeur de retour est
\-1, et
.I errno
contient le code d'erreur.
.SH FICHIERS
.I /bin/sh
.SH ERREURS
Toutes ces fonctions
peuvent chouer et positionner
.I errno
sur n'importe quelle erreur dcrite dans la fonction
.BR execve (2).
.SH "VOIR AUSSI"
.BR sh (1),
.BR execve (2),
.BR fork (2),
.BR environ (5),
.BR ptrace (2)
.SH COMPATIBILIT
Sur certains systmes, le chemin de recherche par dfaut (employ si l'environnement ne contient
pas la variable \fBPATH\fR) contient
le rpertoire courant la suite de
.I /bin
et
.IR /usr/bin ,
afin d'viter les chevaux de Troie. Linux utilise
encore le rpertoire courant en premier dans ce chemin de recherche par dfaut.
.PP
Le comportement de
.B execlp
et
.B execvp
lorsqu'une erreur se produit est une pratique historique mais n'a
traditionnellement jamais t document, ni spcifi dans le standard
POSIX.
Lorsque l'erreur ETXTBSY se dclenche (fichier excutable ouvert en
criture par un autre processus), BSD (et peut-tre d'autres systmes)
endorment le processus appelant puis riterent l'opration. Linux
considre cette situation comme une erreur grave, et revient immdiatement.
.PP
Habituellement, les fonctions
.B execlp
et
.B execvp
ignoraient toutes les erreurs sauf celles dcrites ci-dessus,
.B ENOMEM
et
.BR E2BIG .
Dsormais, elles reviennent l'appelant si une autre erreur que celles-ci
se produit.
.SH "CONFORMIT"
.BR execl ,
.BR execv ,
.BR execle ,
.B execlp
et
.B execvp
sont conformes IEEE Std1003.1-88 (``POSIX.1'').
.SH TRADUCTION
Christophe Blaess, 1997.
|