Provided by:
manpages-pt-dev_20040726-4_all 
NOME
execl, execlp, execle, execv, execvp - executa um arquivo
SINOPSE
#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[]);
DESCRI,C~AO
A familia de funcoes exec substitui a imagem do processo atual por uma
imagem de um novo processo. As funcoes descritas nesta pagina de manual
sao front-ends para a funcao execve(2). (Veja a pagina de manual de
execve para informacoes detalhadas sobre a substituicao do processo
atual.)
O argumento inicial para estas funcoes e o nome de caminho de um
arquivo a ser executado.
O argumento const char *arg e as reticencias que o seguem nas funcoes
execl, execlp, e execle podem ser vistos como arg0, arg1, ..., argn.
Juntos eles descrevem uma lista de um ou mais ponteiros para strings
terminadas em '\0' que representam a lista de argumentos disponivel ao
programa executado. O primeiro argumento, por convencao, deveria
apontar para o nome do arquivo associado ao arquivo sendo executado. A
lista de argumentos deve ser terminada por um ponteiro NULL .
As funcoes execv e execvp fornecem um vetor de ponteiros para strings
terminadas em '\0' que representam a lista de argumentos disponivel ao
novo programa. O primeiro argumento, por convencao, deveria apontar
para o nome do arquivo associado ao arquivo sendo executado. O vetor
de ponteiros deve ser terminado por um ponteiro NULL .
A funcao execle especifica tambem o ambiente do processo executado
atraves de um parametro adicional que vem depois do ponteiro NULL que
termina a lista de argumentos na lista de parametros ou depois do
ponteiro para o vetor argv. Este parametro adicional e um vetor de
ponteiros para strings terminadas em '\0' e deve ser terminado por um
ponteiro NULL . As outras funcoes obtem o ambiente para a imagem do
novo processo da variavel externa environ no processo atual.
Algumas destas funcoes tem uma semantica especial.
As funcoes execlp e execvp duplicarao as acoes do shell na busca por um
arquivo executavel se o nome de arquivo especificado nao contem um
caractere barra (/). O caminho da busca e o caminho especificado no
ambiente atraves da variavel PATH. Se esta variavel nao esta
especificada, o caminho padrao ``:/bin:/usr/bin'' e utilizado. Alem
disso, alguns erros sao tratados de maneira especial.
Se a permissao e negada para um arquivo (a tentativa de execve retornou
EACCES), estas funcoes vao continuar pesquisando o resto do caminho de
busca. Se nenhum outro arquivo for encontrado, entretanto, elas irao
retornar com a variavel global errno contendo o valor EACCESS.
Se um cabecalho de um arquivo nao for reconhecido (a tentativa de
execve retrnou ENOEXEC), estas funcoes irao executar o shell com o
caminho do arquivo como seu primeiro argumento. (Se esta tentativa
falhar, nenhuma busca adicional e realizada.)
VALORES DE RETORNO
Se qualquer das funcoes exec retornar, um erro tera ocorrido. O valor
de retorno e -1, e a variavel global errno sera ajustada para indicar o
erro.
ARQUIVOS
/bin/sh
ERROS
Todas essas funcoes podem falhar e ajustar errno para qualquer um dos
erros especificados pela funcao de biblioteca execve(2).
VEJA TAMB'EM
sh(1), execve(2), fork(2), environ(5), ptrace(2)
COMPATIBILIDADE
Em alguns outros sistemas o PATH padrao possui o diretorio de trabalho
atual listado depois de /bin e /usr/bin, como uma medida anti-cavalo-
de-Troia. De acordo com a libc 5.4.7, o Linux ainda usa o tradicional
"diretorio atual primeiro" no PATH padrao.
O comportamento de execlp e execvp quando erros ocorrem durante uma
tentativa de executar um arquivo e pratica historica, mas nao tem sido
documentado tradicionalmente e nao e especificado pelo padrao POSIX. O
BSD (e possivelmente outros sistemas) realiza automaticamente uma
espera e tenta novamente se ETXTBSY e encontrado. O Linux trata isso
como um erro grave e retorna imediatamente.
Tradicionalmente, as funcoes execlp e execvp ignoravam todos os erros
exceto os descritos acima e ENOMEM e E2BIG, nos quais elas retornavam.
Agora elas retornam se qualquer erro alem dos descritos acima ocorrer.
PADR~OES
Execl, execv, execle, execlp e execvp estao de acordo com IEEE
Std1003.1-88 (``POSIX.1'').
TRADUZIDO POR LDP-BR em 21/08/2000.
Felipe Pereira <Felipe.Pereira@ic.unicamp.br> (traducao)
xxxxxxxxxxxxxxxxxxxxxxxxxxx <em@il-revisor.br> (revisao)
Pagina de Manual do BSD 29/11/1993 EXEC(3)