Accueil > Forum > > > > putenv() et getenv()
putenv() et getenv()
mercredi 2 novembre 2011 à 19:17:56 |
putenv() et getenv()

andoid
|
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 est 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. 
|
|
jeudi 3 novembre 2011 à 10:29:25 |
Re : putenv() et getenv()

buno
|
Hello,
Vu le nombre de topics que tu ouvres, j'imagine que tu n'as toujours pas résolu ton souci.
dans la fonction, quand je fais des getenv la variable est bonne mais quand j'en sors et que je fais un getenv, elle n'existe plus.
Quand tu sors de quoi exactement?
Avec le code ci-dessous, getenv() me retourne bien la bonne valeur.
Code C/C++ :
#include <iostream>
int main(void)
{
putenv("CODES=source");
std::cout<<"Voici la valeur: "<< getenv("CODES") << std::endl;
system("pause");
}
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
jeudi 3 novembre 2011 à 10:54:05 |
Re : putenv() et getenv()

andoid
|
J'ai résolu mes problémes et mon shell marche sauf que je dois tenir en compte les variables d'environnement.
/home/andoid/Bureau: bab="ls"
j'ai fait un putenv("bab=ls") qui fonctionne et getenv("bab") me retourne "ls" mais si le shell revient à l'etat initial et que je tape $bab il fait rien voici le code
void Gestion_V_Environnement(char* commande)
{
char **tab=malloc((strlen(commande)+1)*sizeof(char*));
char** recup;
char* variable;
char concat[TAILLE];
tab=Pipes(commande,"=\"");
strcpy(concat,"");
strcat(concat,tab[0]);
strcat(concat,"=");
strcat(concat,tab[1]);
putenv(concat);
variable=getenv(tab[0]);
if(variable==NULL)
printf("la variable n'existe pas\n");
else
executer(variable);
printf("\nLe positionnement de getenv=%s \n",variable);
free(tab);
}
|
|
jeudi 3 novembre 2011 à 11:44:14 |
Re : putenv() et getenv()

buno
|
Je ne comprends pas ce que tu veux dire. Ta variable d'environnement sera là tant que ton programme tourne. Mais si tu le fermes, tu fermes ton environnement courant et donc ta variable n'est plus là.
Je ne sais pas comment ça se passe sous Linux mais il me semble que sous Windows, si tu veux agir sur les variables d'environnement système, il faut modifier la base de registres.
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
jeudi 3 novembre 2011 à 11:44:37 |
Re : putenv() et getenv()

LA_Tupac
|
La modification de putenv() est locale au processus.
Donc quand le programme se ferme, les variables reviennent à la normale.
Pour que la modif reste, utilise system() et balance la commande linux qui modifie la variable.
ex:
Code C/C++ : system("export PATH=$PATH:/home/user/mes_prog");
Attention, le programme devra être lancé avec les droits root !! 
|
|
jeudi 3 novembre 2011 à 12:18:29 |
Re : putenv() et getenv()

CptPingu
|
Inutile de reposter 18 fois la même question... Sache que ta question est vue, même si elle n'est pas en début de liste.
Les membres y répondent quand ils peuvent (et si ils peuvent). J'ai répondu à ta question ici, avant de m'apercevoir que tu avais reposé la question à de nombreuse reprise. J'ai effacé ces doublons.
http://www.cppfrance.com/forum/sujet-VARIABLE-ENVIRONNEMENT_1552913.aspx
Merci à l'avenir de ne pas reposer plusieurs fois la même question et d'attendre patiemment que l'on te réponde !
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
|
|
jeudi 3 novembre 2011 à 12:23:24 |
Re : putenv() et getenv()

andoid
|
Au faite c'est le même titre mais pas le contenu la premiere question j'ai pu le resoudre tout seul
|
|
jeudi 3 novembre 2011 à 12:30:09 |
Re : putenv() et getenv()

andoid
|
pour buno:
le but est que si je tape lister="ls" puis entré le shell
t'affiche la valeur de $lister
/home/andoid/Bureau/projet: lister="ls
/home/andoid/Bureau/projet:$lister
resultat:
minish.c
minish.h
..
...
.....
nimportekoi.c
pour LA_Tupac:
le prof nous interdit d'utiliser system
mon code arrive a creer la variable lister mais mon shell revient pour attendre $lister il m'affiche rien
|
|
jeudi 3 novembre 2011 à 16:23:47 |
Re : putenv() et getenv()

LA_Tupac
|
le prof nous interdit d'utiliser system
Je te l'ai dit, putenv ne modifie pas les variable directement (pour des questions de sécu bien sûr).
La question est donc: es-tu obligé d'utiliser les variables système? Si oui tu n'a pas d'autres alternatives...désolé 
|
|
jeudi 3 novembre 2011 à 21:29:43 |
Re : putenv() et getenv()

andoid
|
ok pour ne pas me faire degommer par le prof je pense que je vais utiliser un fichier
ce sera mieux
|
|
Cette discussion est classée dans : fonction, code, getenv, putenv
Répondre à ce message
Sujets en rapport avec ce message
getch() sous Linux [ par yapud ]
Bonjour,J'ai un probleme avec la fonction gecth() se trouvant danc la librairie CURSES.H sous LINUX !J'utilise cette meme fonction sous WINDOWS qui ma
Fonction return dans une console windows [ par Jolfulorc ]
Bonjour,Lorsque j'affiche un texte dans une console windows (code du genre : coutla façon que j'ai trouvé pour contourner cet inconvénient
Timers haute précision [ par SMarmotte ]
Bonjour à tousJe cherche à attendre EXACTEMENT 60 micro secondes.J'ai fait cette routine mais elle me bouffe 50% du temps CPU du fait que je dois l'ap
Problème de code en c++ (fonction itoa) [ par mimyne ]
voila g le code suivant:void Resultat_Clicked(Object* pSender, EventArgs* pArgs){ int operation = 5; char* chaine[2]; if (pSender == Btnres) { { ito
Nombre aléatoire en C [ par FoLKeN91 ]
Bonjour tout le monde.Alors voici mon probleme, j'ai beau cherché je n'arrive pas à le résoudre. Je désire faire une fonction qui renvoie un nombre al
la fonction "afficher le source" de internet explorer [ par zip8000 ]
Bonjour,je cherche a reproduire le resultat de la fonction "afficher la source" qui ouvre le code html d'une page internet. Mon but est de recuperer c
convertir une chaine de caracatères en hexadécimal [ par vinc524 ]
salut all !voilà je voulais savoir s'il existe une fonction pour convertir une chaine de caractètes provenat du port série RS232 récupéré par la métho
Fonction find du STL [ par saturne_1606 ]
Bonjour a tous!Voila mon prob:g un exo1.h comme suit:#include #include class personne{ protected : s
pointer vers un tableau 2d [ par Adeon ]
salut ! je suis en train de creer une fonction qui doit inclure un tableau 2d dont on ne connait pas les valeurs.si je fais :void fonction(char *tab){
Ajout Menu dans un PopupMenu [ par larion ]
Bonjour, Dans mon programme je crée plusieurs menus dans un popupmenu avec ce code : Code: NewItems[p] = new TMenuItem(PopupMenu1); NewItems[p]->Capti
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|