Sommaire

Environnement d’un processus Processus:environnement

Tout processus dispose d’une zone mémoire particulière appelée environnement. Elle est constituée d’un tableau, dont chaque entrée est constituée d’une chaîne de caractères de la forme "nom=valeur". Ces entrées correspondent aux variables d’environnement.

Un processus peut modifier le contenu de cette zone, en ajoutant, supprimant ou modifiant des entrées. Quand il crée un processus enfant, ce dernier hérite de cet environnement, qui est copié dans sa propre zone d’environnement. C’est ainsi qu’un processus peut transmettre des valeurs à son ou ses processus enfants.

Le shell utilise ce mécanisme pour gérer l’environnement d’un utilisateur, par différentes variables transmises aux commandes qu’il traite. Par exemple, la variable d’environnement PATH contient le répertoire courant du shell au moment de la création du processus, la variable TERM contient un identifiant de type de terminal.

1. Lire l’environnement : getenv()

Un programme C peut accéder au contenu de son environnement en récupérant le troisième argument passé à la fonction main(), un pointeur sur ce tableau de valeurs.

Si on veut seulement connaître le contenu d’une variable d’environnement dont on connaît le nom, on peut utiliser cette fonction :

Syntaxe

#include <stdlib.h>  ...