Dans cet article, je vais parler de la famille exécutive des fonctions et vous montrer comment utiliser chacune de ces fonctions de la famille Exec en C. Alors, commençons.
C Fonctions du système dans la famille Exec:
Les familles de fonctions exec sont définies dans l'en-tête unistd.H. Vous devez donc utiliser cet en-tête sur le programme C où vous souhaitez utiliser ces fonctions.
Les fonctions EXEC disponibles ainsi que leurs paramètres de fonction sont données ci-dessous:
Voyons ce que font chacune de ces fonctions et comment les utiliser.
Fonction du système execl ():
Dans EXECL (), la fonction Système prend le chemin du fichier binaire exécutable (I.e. / bac / ls) comme premier et deuxième argument. Ensuite, les arguments (je.e. -LH, /maison) que vous voulez passer à l'exécutable suivi de NUL. Ensuite, la fonction du système EXECL () exécute la commande et imprime la sortie. Si une erreur se produit, alors eecl () renvoie -1. Sinon, ça ne renvoie rien.
Un exemple de la fonction Système EXECL () est donné ci-dessous:
#inclureJ'ai couru le ls -lh / maison Commande à l'aide de la fonction du système execl (). Comme vous pouvez le voir, le résultat correct est affiché.
Fonction du système execlp ():
eecl () n'utilise pas le CHEMIN variable d'environnement. Ainsi, le chemin complet du fichier exécutable est requis pour l'exécuter avec execl (). execlp () utilise la variable d'environnement de chemin. Donc, si un fichier ou une commande exécutable est disponible dans le chemin, alors la commande ou le nom de fichier est suffisant pour l'exécuter, le chemin complet n'est pas nécessaire.
Nous pouvons réécrire l'exemple EXECL () à l'aide de la fonction système execlp () comme suit:
#inclureJe n'ai réussi que le nom de commande LS, Pas le chemin complet / bac / ls. Comme vous pouvez le voir, j'ai obtenu la même sortie qu'avant.
Fonction du système execv ():
Dans la fonction execl (), les paramètres du fichier exécutable sont transmis à la fonction comme différents arguments. Avec execv (), vous pouvez transmettre tous les paramètres dans un tableau terminé nul argv. Le premier élément du tableau doit être le chemin d'accès du fichier exécutable. Sinon, la fonction Execv () fonctionne tout comme EXECL ().
Nous pouvons réécrire l'exemple EXECL () comme suit:
#inclureComme vous pouvez le voir, j'obtiens la sortie correcte.
Fonction du système execvp ():
Fonctionne la même manière que la fonction Système Execv (). Mais, la variable d'environnement de chemin est utilisée. Ainsi, le chemin complet du fichier exécutable n'est pas requis comme dans execlp ().
Nous pouvons réécrire l'exemple execv () comme suit:
#inclureComme vous pouvez le voir, la sortie correcte s'affiche.
Fonction du système execle ():
Fonctionne comme execl () mais vous pouvez fournir vos propres variables d'environnement avec lui. Les variables d'environnement sont passées comme un tableau envp. Le dernier élément du envp le tableau doit être nul. Tous les autres éléments contiennent les paires de valeurs de clé sous forme de chaîne.
Un exemple de la fonction Système Execle () est donné ci-dessous:
#inclureJ'ai passé deux variables d'environnement Nom d'hôte et PORT à la fonction execle (). Comme vous pouvez le voir, je peux y accéder depuis l'exécutable / bac / bash.
Fonction du système execve ():
Tout comme execle (), vous pouvez fournir vos propres variables d'environnement avec EXECVE (). Vous pouvez également passer des arguments en tant que tableaux que vous l'avez fait dans execv ().
L'exemple execle () peut être réécrit comme suit:
#inclureComme vous pouvez le voir, nous obtenons la même sortie que dans l'exemple Execle ().
C'est donc ainsi que vous utilisez la famille des fonctions d'exec en C pour la programmation système dans Linux. Merci d'avoir lu cet article.