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ÇÃ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)