[Unix] Variables d'environnement

Fermé
Mathilde - 20 mai 2005 à 15:20
 SKZ - 23 mai 2005 à 16:51
Bonjour,

J'ai un petit souci et j'ai donc besoin de votre aide.

Je suis dans un environnement unixware version 7.1.1. Je déclare mes variables d'environnement dans le .profile et ensuite, je lance un batch, qui lui-même lance un awk, qui lui, lance un exe.
Et lors de l'exécution du .exe, je perds certaines de mes variables d'environnement.
Or, celles-ci ne sont modifiées ni dans le bat ni dans le awk ni dans le .c.
J'espère avoir été claire !!!

Avez-vous déjà rencontré ce cas particulier ? Si oui, comment l'expliquez-vous ? Et comment le résoudre ?

Merci beaucoup pour votre aide.
Mathilde

2 réponses

sam3000 Messages postés 1225 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 13 juin 2005 144
20 mai 2005 à 15:58
verifie si tu n'as pas des debordements de memoire dans ton programme C, car ça pourrais etre à l'origine de modification des variables dans la memoire
0
Tut, tut !!!

Pas de débordement mémoire. Les V.E. (originales) ne font pas partie de l'espace mémoire du processus, si il essaayer de les écraser par mégarde, le programme se ferait renvoyer direct dans ses but par le système
(SIGSEGV, segmentation fault/violation, bus error ou autre message équivalent (protection générale sous Win))


Faut voir par contre qu'à priori, le système doit ouvrir un nouveau shell (invisible) pour éxécuter ta commande (je veux dire ton exe)

Il est possible que ce shell là ne soit pas affecté par la modif du .profile

Si tu est sous bash, fait attention que tu à bien réglé tes variables via un 'export' (export PATH=... par exemple), où regarde du coté des options de la commande 'set', etc...

Ton cas est trop flou (je connais pas awk, en fait) pour je sois catégorique, mais je soupsonne assez fortement que tes variables sont réglées sur le shell de login ne sont pas exporté vers les processus fils...
0
Tut, tut !!!

Pas de débordement mémoire. Les V.E. (originales) ne font pas partie de l'espace mémoire du processus, si il essaayer de les écraser par mégarde, le programme se ferait renvoyer direct dans ses but par le système
(SIGSEGV, segmentation fault/violation, bus error ou autre message équivalent (protection générale sous Win))


Faut voir par contre qu'à priori, le système doit ouvrir un nouveau shell (invisible) pour éxécuter ta commande (je veux dire ton exe)

Il est possible que ce shell là ne soit pas affecté par la modif du .profile

Si tu est sous bash, fait attention que tu à bien réglé tes variables via un 'export' (export PATH=... par exemple), où regarde du coté des options de la commande 'set', etc...

Ton cas est trop flou (je connais pas awk, en fait) pour je sois catégorique, mais je soupsonne assez fortement que tes variables sont réglées sur le shell de login ne sont pas exporté vers les processus fils...
Mais ça dépend du shell, de la manière de les régler, etc...
0