Skip to main content

Execl - Commande Linux - Commande Unix

Formation Linux, BASH et le terminal - Partie 1 (Mai 2024)

Formation Linux, BASH et le terminal - Partie 1 (Mai 2024)
Anonim

Prénom: execl, execlp, execle, execv, execvp - exécute un fichier

Synopsis

#comprendre extern char ** environ; int execl (const char * chemin, const char * arg, …);int execlp (fichier const char *, const char * arg, …);int execle (const char * chemin, const char * arg, …, char * const envp );int execv (const char * chemin, char * const argv );int execvp (const * fichier, char * const argv );

La description

leexec la famille de fonctions remplace l’image de processus actuelle par une nouvelle image de processus. Les fonctions décrites dans cette page de manuel sont des interfaces pour la fonctionexécuter(2). L'argument initial de ces fonctions est le chemin d'accès d'un fichier à exécuter.

le const char * arg et ellipses ultérieures dans laexecl, execlp, etexécuterles fonctions peuvent être considérées comme arg0 , arg1 , …, argument . Ensemble, ils décrivent une liste d'un ou plusieurs pointeurs vers des chaînes à terminaison nulle qui représentent la liste d'arguments disponible pour le programme exécuté. Le premier argument, par convention, doit pointer vers le nom du fichier associé au fichier en cours d'exécution. La liste des arguments doit être résilié par unNUL aiguille.

leexecv etexecvp les fonctions fournissent un tableau de pointeurs sur les chaînes à zéro terminal représentant la liste d'arguments disponible pour le nouveau programme. Le premier argument, par convention, doit pointer vers le nom du fichier associé au fichier en cours d'exécution. Le tableau de pointeurs doit être terminé par unNUL aiguille.

leexécuter fonction spécifie également l’environnement du processus exécuté en suivant les instructionsNUL pointeur qui termine la liste des arguments dans la liste des paramètres ou le pointeur sur le tableau argv avec un paramètre supplémentaire. Ce paramètre supplémentaire est un tableau de pointeurs sur les chaînes terminées par un caractère nul et doit être résilié par unNUL aiguille. Les autres fonctions prennent l'environnement pour la nouvelle image de processus à partir de la variable externe environ dans le processus actuel.

Certaines de ces fonctions ont une sémantique spéciale.

Les fonctionsexeclp etexecvp dupliquera les actions du shell lors de la recherche d'un fichier exécutable si le nom de fichier spécifié ne contient pas de barre oblique (/). Le chemin de recherche est le chemin spécifié dans l'environnement par leCHEMIN variable. Si cette variable n'est pas spécifiée, le chemin par défaut ``: / bin: / usr / bin '' est utilisé. De plus, certaines erreurs sont traitées spécialement.

Si l'autorisation est refusée pour un fichier (la tentativeexécuter revenuEACCES), ces fonctions continueront à chercher dans le reste du chemin de recherche. Si aucun autre fichier n'est trouvé, ils retourneront avec la variable globale errno mis àEACCES.

Si l’en-tête d’un fichier n’est pas reconnu (la tentativeexécuter revenuENOEXEC), ces fonctions exécuteront le shell avec le chemin du fichier comme premier argument. (Si cette tentative échoue, aucune recherche supplémentaire n'est effectuée.)

Valeur de retour

Si l'un desexec fonctions revient, une erreur s’est produite. La valeur de retour est -1 et la variable globale errno sera réglé pour indiquer l'erreur.