Les variables d'environnement d'un processus existent au moment de l'exécution et ne sont pas stockées dans certains fichiers. Ils sont stockés dans la mémoire du processus (c'est là qu'ils sont transmis aux enfants). Mais il y a un fichier virtuel dans
/proc/pid/environ
Ce fichier affiche toutes les variables d'environnement qui ont été adoptées lors de l'appel du processus (à moins que le processus qui écrasait une partie de sa mémoire - la plupart des programmes ne le font pas). Le noyau les rend visibles à travers ce fichier virtuel. On peut les lister. Par exemple, pour afficher les variables du processus 3940, on peut faire
cat /proc/3940/environ | tr '\0' '\n'
Chaque variable est délimitée par un zéro binaire de la suivante. tr remplace le zéro dans une nouvelle ligne.
Cette information est-elle spécifique à Linux? – cletus
Cletus, oui je pense que c'est spécifique à Linux, mais je ne sais pas. –
Tout ce qui figure dans '/ proc' devrait être présumé spécifique au système d'exploitation. Ecrire des programmes qui regardent '/ proc' est un gros WTF pour moi. – asveikau