Skip to main content

Tudo sobre o comando Linux / Unix: execvp

Linux Exec System Call (Pode 2025)

Linux Exec System Call (Pode 2025)
Anonim

oexec família de funções substitui a imagem do processo atual por uma nova imagem de processo. As funções descritas aqui são front-ends para a funçãoexecve(2).

O argumento inicial para estas funções é o nome do caminho de um arquivo que deve ser executado.

o const char * arg e elipses subseqüentes noexecl, execlpeexecle funções podem ser pensadas como arg0 , arg1 , …, argn . Juntos, eles descrevem uma lista de um ou mais ponteiros para sequências terminadas em nulo que representam a lista de argumentos disponível para o programa executado. O primeiro argumento, por convenção, deve apontar para o nome do arquivo associado ao arquivo que está sendo executado. A lista de argumentos devo ser terminado por umNULO ponteiro.

oexecv eexecvp funções fornecem uma matriz de ponteiros para seqüências terminadas por caractere nulo que representam a lista de argumentos disponível para o novo programa. O primeiro argumento, por convenção, deve apontar para o nome do arquivo associado ao arquivo que está sendo executado. A matriz de ponteiros devo ser terminado por umNULO ponteiro.

oexecle função também especifica o ambiente do processo executado seguindo oNULOponteiro que termina a lista de argumentos na lista de parâmetros ou o ponteiro para o array argv com um parâmetro adicional. Esse parâmetro adicional é uma matriz de ponteiros para sequências terminadas em devo ser terminado por umNULO ponteiro. As outras funções tomam o ambiente para a nova imagem do processo a partir da variável externa environ no processo atual.

Algumas dessas funções têm semântica especial.

As funçõesexeclp eexecvp duplicará as ações do shell na procura de um arquivo executável se o nome do arquivo especificado não contiver um caractere de barra (/). O caminho de pesquisa é o caminho especificado no ambiente peloCAMINHO variável. Se esta variável não for especificada, o caminho padrão ``: / bin: / usr / bin '' é usado. Além disso, certos erros são tratados especialmente.

Se a permissão for negada para um arquivo (a tentativaexecve retornouEACCES), essas funções continuarão pesquisando o restante do caminho de pesquisa. Se nenhum outro arquivo for encontrado, no entanto, eles retornarão com a variável global errno definido comoEACCES.

Se o cabeçalho de um arquivo não for reconhecido (a tentativaexecve retornouENOEXEC), essas funções executarão o shell com o caminho do arquivo como seu primeiro argumento. (Se essa tentativa falhar, nenhuma pesquisa adicional será feita.)

Valor de retorno

Se algum dosexec funções retorna, um erro terá ocorrido. O valor de retorno é -1 e a variável global errno será definido para indicar o erro.

Importante: Use o homem comando ( % homem ) para ver como um comando é usado em seu computador particular.

Nome

execl, execlp, execle, execv, execvp - executa um arquivo

Sinopse

#incluir

extern char ** environ;

int execl (const char * caminho const char * arg , …); int execlp (const char * Arquivo const char * arg , …); int execle (const char * caminho const char * arg , …, char * const envp ); int execv (const char * caminho char * const argv ); int execvp (const char * Arquivo char * const argv );