Bonjour j'ai un probléme sur mon code au faite je m'entraine pour comprendre les variables d'environnement : le code lit au clavier et dois créer une variables d'environnement genre tu tape CODE="SOURCE". Mais mon probléme est que mon getenv ne marche pas alors que putenv me signal qu'il a crée la variable voici mon code:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#define TAILLE 100
char** decouper(char* commande)
{
char *c=NULL;
char **tab=malloc((strlen(commande)+1)*sizeof(char*));
int i=0;
c = strtok(commande, "=\"");
do {
/*J'staock les commandes dans le tableau de char** afin de pouvoir utiliser exec et sa famille*/
tab[i]=c;
i++;
c = strtok(0,"=\"");
}while (c);
return tab;
}
int main ()
{
char commande[TAILLE];
char *concat=NULL;
fgets(commande,TAILLE,stdin);
int detecte=0,i=0,res_concat;
char ** tab;
char** recup;
char* variable;
if(strchr(commande,'=')) detecte =1;
if (detecte==1)
{
tab=decouper(commande);
concat=strcat(tab[0],"=");
concat=strcat(concat,tab[1]);
printf("concat=: %s\n",concat);
if(putenv(concat)==0)
{
recup=decouper(concat);
printf("recup[0]=%s\n",recup[0]);
variable=getenv(recup[0]);
if(variable==NULL)
printf("variable n'existe pas\n");
else
printf("%s=%s\n",recup[0], variable);
}
else
{
printf("echec création de la variable d'environnement\n");
}
}
}