Comando Linux / Unix: execvp

Nom

execl, execlp, execle, execv, execvp - executeu un fitxer

Sinopsi

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

Descripció general del comandament

La família de funcions exec reemplaça la imatge del procés actual amb una imatge de procés nova. Les funcions descrites aquí són front-ends per a la funció execve (2).

L'argument inicial per a aquestes funcions és la ruta d'accés d'un fitxer que s'ha d'executar.

El const char * arg i posteriors el·lipsis a execl , execlp i execle funcions es poden considerar arg0 , arg1 , ..., argn . Junts, descriuen una llista d'un o més indicadors a cadenes de termes nuls que representen la llista d'arguments disponible per al programa executat. El primer argument, per convenció, hauria d'indicar el nom del fitxer associat al fitxer que s'està executant. La llista d'arguments s'ha de finalitzar amb un punter NULL .

Les funcions execv i execvp proporcionen una sèrie d'indicadors a cadenes terminades en zero que representen la llista d'arguments disponible per al nou programa. El primer argument, per convenció, hauria d'indicar el nom del fitxer associat al fitxer que s'està executant. La col·lecció de punteres s'ha de finalitzar amb un punter NULL .

La funció execle també especifica l'entorn del procés executat seguint el punter NULL que finalitza la llista d'arguments a la llista de paràmetres o el punter a la matriu argv amb un paràmetre addicional. Aquest paràmetre addicional és una sèrie de suggeriments a cadenes terminades en zero i ha de ser rescindit amb un punter NULL . Les altres funcions prenen el medi ambient per a la nova imatge del procés des del medi variable extern en el procés actual.

Algunes d'aquestes funcions tenen una semàntica especial.

Les funcions execlp i execvp duplicaran les accions de la shell en la recerca d'un fitxer executable si el nom del fitxer especificat no conté un caràcter slash (/). La ruta de cerca és la ruta especificada a l'entorn per la variable PATH . Si no s'especifica aquesta variable, s'utilitza la ruta predeterminada ``: / bin: / usr / bin ''. A més, es tracten especialment certs errors.

Si es denega un permís per a un fitxer (l'intent execve retornat EACCES ), aquestes funcions continuaran buscant la resta de la ruta de cerca. Si no es troba cap altre fitxer, no obstant això, tornaran amb la variable global errno establerta a EACCES .

Si no es reconeix l' encapçalament d'un fitxer (l' execve intentat ha retornat ENOEXEC ), aquestes funcions executaran l'intèrpret d'ordres amb la ruta del fitxer com a primer argument. (Si aquest intent falla, no es fa cap cerca).

Valor retornat

Si alguna de les funcions exec executa , s'ha produït un error. El valor retornat és -1, i la variable global errno s'establirà per indicar l'error.

Important: utilitzeu l'ordre man ( % home ) per veure com s'utilitza una comanda a l'ordinador en particular.