Putenv/setenv/getenv

Fermé
Nieli Messages postés 83 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 23 avril 2009 - 10 déc. 2008 à 19:34
Nieli Messages postés 83 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 23 avril 2009 - 11 déc. 2008 à 15:17
Bonjour,
Je viens de remarquer que setenv n'était pas POSIX et je voudrais donc utiliser putenv.
J'ai donc reproduit une fonction ou il y a exactement le code à l'interieur de ce main :
http://www.lsv.ens-cachan.fr/~parrenne/Cours/code/td2_putenv.c
dans la fonction, quand je fais des getenv la variable et bonne mais quand j'en sors et que je fais un getenv, elle n'existe plus.

Voila si vous pouvez m'aider.. :/

Merci d'avance.

Niel.

2 réponses

Erreur classique tant que l'on n'a pas compris ce qui se passe.
Oui, c'est normal de ne pas retrouver la variable.
En effet, lorsque l'on lance un programme, on crée un nouveau processus (fils) qui reçoit (du père) une copie de certains paramètres dont les variables d'environnement; le fils peut faire ce qu'il veut (modifier, créer, supprimer) de ses variables et en aucun cas le processus qui l'a crée (le père) ne le saura car le fils n'effectue ses modifications que sur une copie.
0
Nieli Messages postés 83 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 23 avril 2009 6
11 déc. 2008 à 15:17
Le fait est que le programme en question est un petit shell et donc qu'il ne s'arrete pas et c'est ce shell lui même qui modifie le $PWD et dans lequel on veut y réacceder.
0