GNU/Linux >> Tutoriels Linux >  >> Linux

Que signifient P et E dans la famille d'appels Exec ?

l et v dans les appels exec, indiquez si les arguments sont fournis via list ou array(vector) . Je l'ai lu quelque part que p indique le chemin de l'utilisateur et e désigner l'environnement mais n'a pas compris ce que cela signifie ?

Réponse acceptée :

Consultez ce lien Wikipedia sur la fonction Exec et ce lien sur Démarrer un processus avec les appels exec()

e - Un tableau de pointeurs vers des variables d'environnement est explicitement transmis à la nouvelle image de processus.

Les versions avec le suffixe "e" transmettent un environnement au programme. Un
environnement n'est rien d'autre qu'une sorte de « contexte » dans lequel le programme peut
opérer. Par exemple, vous pouvez avoir un vérificateur d'orthographe doté d'un
dictionnaire de mots. Au lieu de spécifier l'emplacement du dictionnaire
à chaque fois sur la ligne de commande, vous pouvez le fournir dans l'environnement
 :

l – Les arguments de la ligne de commande sont passés individuellement (une liste) à la fonction.

Par exemple, si je veux invoquer la commande ls avec les arguments -t,
-r et -l (ce qui signifie "trier la sortie par heure, dans l'ordre inverse, et me montrer la version longue de la sortie" ), je pourrais le spécifier comme
soit.

p - Utilise la variable d'environnement PATH pour trouver le fichier nommé dans l'argument path à exécuter.

Les versions avec le suffixe "p" rechercheront les répertoires dans votre variable d'environnement PATH
pour trouver l'exécutable. Vous avez probablement remarqué
que tous les exemples ont un emplacement codé en dur pour l'exécutable :
/bin/ls et /usr/bin/spellcheck. Qu'en est-il des autres exécutables ? À moins que
vous ne vouliez d'abord connaître le chemin exact de ce programme particulier,
il serait préférable que l'utilisateur indique à votre programme tous les endroits où
rechercher des exécutables. C'est exactement ce que fait la variable d'environnement PATH standard.

v – Les arguments de la ligne de commande sont passés à la fonction sous la forme d'un tableau (vecteur) de pointeurs.

La liste d'arguments est spécifiée via un pointeur vers un vecteur d'arguments.

Comme mentionné dans l'autre réponse, ce lien sur les appels système Unix est également génial pour une lecture plus approfondie.

En relation : $ PWD ? (vs répertoire de travail actuel) ?
Linux
  1. Que fait "lc_all=c" ?

  2. Que fait Exec 3 ?

  3. Le point d'Uniq -u et à quoi ça sert ??

  4. Qu'est-ce que le DNS et comment ça marche ?

  5. Quelle est la différence entre les fonctions de la famille exec d'appels système comme exec et execve ?

Commande de fichier Linux :que fait-elle et comment l'utiliser

Qu'est-ce que null signifie dans Linux et l'informatique

PDF Split And Merge 'PDFSAM' fait exactement ce qu'il dit

Qu'est-ce que les appels système Linux et les fonctions de bibliothèque ?

Qu'est-ce que `S_ISREG()` et à quoi sert-il ?

Que fait `exec [email protected]` ?