[C] modifier les variables d'environnements sous UNIX

modifier les variables d'environnements sous UNIX [C] - C++ - Programmation

Marsh Posté le 21-03-2003 à 09:53:22    

salut,
 
voilà .. est-ce que qqun sait comment modifier les variables d'environnement du parent d'un programme (ie. le shell dans lequel on lance) en C sous unix (AIX 4.3.3).
puisque les fct° standards comme putenv/setenv (voir même un system("export toto=xxx" )) n'influent que sur l'env d'exécution et qu'au retour il n'y a aucun impact .......
 
merci par avance pour toute aide !!
 
 
ps: à titre informatif j'utilise le ksh


Message édité par Aricoh le 21-03-2003 à 13:59:29
Reply

Marsh Posté le 21-03-2003 à 09:53:22   

Reply

Marsh Posté le 21-03-2003 à 10:19:27    

je crois que tu peux le faire difficilement, mais si tu nous explique ce que tu veux faire exacetement ou pourquoi, quelqu'un pourra t'aider ...

Reply

Marsh Posté le 21-03-2003 à 13:58:49    

il s'agit d'un ensemble de programmes lancés selon une séquence précise et pilotés/surveillés par un logiciel "maître".  
 
des infos concernant l'execution sont postionnées dans les var d'environnement du shell d'exécution père et surveillées par cette appli principale.
 
bien sur on peut tjs trouver des parades par ex en passant par des fichiers temp ...? mais le problème c que je travaille à la migration de sources C dans un contexte dit iso fonctionnel (c des marrants les décideurs ... franchement... ) : à savoir, le top c que ca fasse exactement comme avant sur l'autre plateforme (OpenVMS) ..  
 
voilà. c plus un soucis contractuel qui me pousse à persister dans ce sens, et aussi comme il s'agit d'une migration (dc que les sources existent tous), changer de technique peu avoir un impact lourd

Reply

Marsh Posté le 21-03-2003 à 14:01:06    

il me semble que tu peux que toucher a l'environnement du processus et de ses fils  [:sinclaire]

Reply

Marsh Posté le 24-03-2003 à 09:35:42    

lorill a écrit :

il me semble que tu peux que toucher a l'environnement du processus et de ses fils  [:sinclaire]  



getpid  retourne  l'ID du processus actif. Ceci est souvent utilisé par des routines qui créent des fichers temporaires uniques.
getppid retourne le PID du processus parent de celui en cours. Ceci est régulièrement  utilise  après un fork (2) pour établir la communication entre les deux processus issus du même programme.


ensuite


SETENV(3)                 Manuel du programmeur Linux                SETENV(3)
 
NOM
       setenv - Change ou ajoute une variable d'environnement.
 
SYNOPSIS
       #include <stdlib.h>
 
       int setenv (const char *name, const char *value, int overwrite);
 
       void unsetenv (const char *name);
 
DESCRIPTION
       La  fonction  setenv() ajoute la variable name dans l'environnement, en
       lui attribuant la valeur value, si name n'existe pas encore.   Si  name
       existe déjà dans l'environnement, alors sa valeur est modifiée en value
       si overwrite est non nul; si overwrite vaut zéro,  la  valeur  de  name
       n'est pas modifiée.
 
       la fonction unsetenv() efface la variable name de l'environnement.
 
VALEUR RENVOYÉE
       La  fonction  setenv()  renvoie zéro si elle reussit, ou -1 si il n'y a
       pas assez de place dans l'environnement.
 
CONFORMITÉ
       BSD 4.3
 
VOIR AUSSI
       getenv(3), putenv(3), environ(5)
 
TRADUCTION
       Christophe Blaess, 1997.
 
BSD                             7 Novembre 1996                      SETENV(3)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed