Provided by: manpages-pt-dev_20040726-4_all bug

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)