Aprende o comando Linux - execl

Nome: execl, execlp, execle, execv, execvp - execute un ficheiro

Sinopse

#include

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 []);

Descrición

A familia executiva de funcións substitúe á imaxe de proceso actual cunha nova imaxe de proceso . As funcións descritas nesta páxina de manual son extremos frontales para a función execve (2). O argumento inicial para estas funcións é a ruta dun ficheiro que se vai executar.

O const char * arg e posteriores elipses nas funcións execl , execlp e execle poden ser pensadas como arg0 , arg1 , ..., argn . Xuntos describen unha lista de un ou máis indicadores de cadeas terminadas nulos que representan a lista de argumentos dispoñibles para o programa executado. O primeiro argumento, por convención, debe indicar o nome do ficheiro asociado co ficheiro que se está executando. A lista de argumentos debe ser rematada por un punteiro NULL .

As funcións execv e execvp proporcionan unha variedade de punteiros ás cadeas terminadas por nulos que representan a lista de argumentos dispoñibles para o novo programa. O primeiro argumento, por convención, debe indicar o nome do ficheiro asociado co ficheiro que se está executando. O punteiro NULL debe terminar coa variedade de punteiros.

A función execle tamén especifica o ambiente do proceso executado seguindo o punteiro NULL que remata a lista de argumentos na lista de parámetros ou o punteiro na matriz argv cun parámetro adicional. Este parámetro adicional é unha variedade de punteiros para cadenas terminadas en nulos e debe ser rescindido por un punteiro NULL . As outras funcións levan o contorno para a nova imaxe do proceso desde o medio variable externo no proceso actual.

Algunhas destas funcións teñen semántica especial.

As funcións execlp e execvp duplicarán as accións do intérprete de comandos na procura dun ficheiro executable se o nome do ficheiro especificado non contén un carácter slash (/). O camiño de busca é a ruta especificada no ambiente pola variable PATH . Se non se especifica esta variable, emprégase o camiño predeterminado ``: / bin: / usr / bin ''. Ademais, determinados erros son tratados especialmente.

Se se deniega un permiso para un ficheiro (o execve intentou devolver EACCES ), estas funcións continuarán buscando o resto da ruta de busca. Se non se atopou outro ficheiro, con todo, volverán coa variable global errno definida en EACCES .

Se non se recoñece o encabezado dun ficheiro (a tentativa de executar volveu ENOEXEC ), estas funcións executarán o shell coa ruta do ficheiro como o seu primeiro argumento. (Se esta proba falla, non se fai máis unha busca).

Valor de retorno

Se algunha das funcións exec executa , ocorrerá un erro. O valor de retorno é -1 e a variable global errno configurarase para indicar o erro.