Provided by: manpages-pt-dev_20040726-5_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ÇÃO
A família de funções exec substitui a imagem do processo atual por uma imagem de um novo processo. As
funções descritas nesta página de manual são front-ends para a função execve(2). (Veja a página de
manual de execve para informações detalhadas sobre a substituição do processo atual.)
O argumento inicial para estas funções é o nome de caminho de um arquivo a ser executado.
O argumento const char *arg e as reticências que o seguem nas funções 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 disponível ao programa executado. O primeiro
argumento, por convenção, deveria apontar para o nome do arquivo associado ao arquivo sendo executado. A
lista de argumentos deve ser terminada por um ponteiro NULL .
As funções execv e execvp fornecem um vetor de ponteiros para strings terminadas em '\0' que representam
a lista de argumentos disponível ao novo programa. O primeiro argumento, por convenção, deveria apontar
para o nome do arquivo associado ao arquivo sendo executado. O vetor de ponteiros deve ser terminado por
um ponteiro NULL .
A função execle especifica também o ambiente do processo executado através de um parâmetro adicional que
vem depois do ponteiro NULL que termina a lista de argumentos na lista de parâmetros ou depois do
ponteiro para o vetor argv. Este parâmetro adicional é um vetor de ponteiros para strings terminadas em
'\0' e deve ser terminado por um ponteiro NULL . As outras funções obtêm o ambiente para a imagem do
novo processo da variável externa environ no processo atual.
Algumas destas funções têm uma semântica especial.
As funções execlp e execvp duplicarão as ações do shell na busca por um arquivo executável se o nome de
arquivo especificado não contém um caractere barra (/). O caminho da busca é o caminho especificado no
ambiente através da variável PATH. Se esta variável não está especificada, o caminho padrão
``:/bin:/usr/bin'' é utilizado. Além disso, alguns erros são tratados de maneira especial.
Se a permissão é negada para um arquivo (a tentativa de execve retornou EACCES), estas funções vão
continuar pesquisando o resto do caminho de busca. Se nenhum outro arquivo for encontrado, entretanto,
elas irão retornar com a variável global errno contendo o valor EACCESS.
Se um cabeçalho de um arquivo não for reconhecido (a tentativa de execve retrnou ENOEXEC), estas funções
irão executar o shell com o caminho do arquivo como seu primeiro argumento. (Se esta tentativa falhar,
nenhuma busca adicional é realizada.)
VALORES DE RETORNO
Se qualquer das funções exec retornar, um erro terá ocorrido. O valor de retorno é -1, e a variável
global errno será ajustada para indicar o erro.
ARQUIVOS
/bin/sh
ERROS
Todas essas funções podem falhar e ajustar errno para qualquer um dos erros especificados pela função de
biblioteca execve(2).
VEJA TAMBÉM
sh(1), execve(2), fork(2), environ(5), ptrace(2)
COMPATIBILIDADE
Em alguns outros sistemas o PATH padrão possui o diretório de trabalho atual listado depois de /bin e
/usr/bin, como uma medida anti-cavalo-de-Tróia. De acordo com a libc 5.4.7, o Linux ainda usa o
tradicional "diretório atual primeiro" no PATH padrão.
O comportamento de execlp e execvp quando erros ocorrem durante uma tentativa de executar um arquivo é
prática histórica, mas não tem sido documentado tradicionalmente e não é especificado pelo padrão POSIX.
O BSD (e possivelmente outros sistemas) realiza automaticamente uma espera e tenta novamente se ETXTBSY é
encontrado. O Linux trata isso como um erro grave e retorna imediatamente.
Tradicionalmente, as funções 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 além dos descritos acima
ocorrer.
PADRÕES
Execl, execv, execle, execlp e execvp estão de acordo com IEEE Std1003.1-88 (``POSIX.1'').
TRADUZIDO POR LDP-BR em 21/08/2000.
Felipe Pereira <Felipe.Pereira@ic.unicamp.br> (tradução) xxxxxxxxxxxxxxxxxxxxxxxxxxx <em@il-revisor.br>
(revisão)
Página de Manual do BSD 29/11/1993 EXEC(3)